监听用户更改事件(多用户设备)
Posted
技术标签:
【中文标题】监听用户更改事件(多用户设备)【英文标题】:Listen for user changed event (multi user device) 【发布时间】:2018-06-29 20:32:10 【问题描述】:我有一个应用程序,它会在手机启动时自行启动。一位用户告诉我,他的手机被两个人使用,一个正在使用我的应用,一个没有。
因此,当用户切换时,我需要一些事件来监听,这样如果正确的用户正在使用手机,我就可以启动我的应用服务。有什么我可以用的吗?
编辑
我正在使用清单中注册的广播接收器监听启动事件,所以我知道这是什么。但我找不到任何适合在设备上切换用户的东西
【问题讨论】:
你能解释一下吗?根据我到目前为止的理解,您需要像 Windows 桌面系统这样的多用户设备,该系统可以与多用户系统一起使用。如果我是对的,那么您需要创建一个家庭启动器应用程序来选择用户配置文件,该应用程序将在设备重新启动时启动并出现在用户面前。但是,用户选择其用户类型,然后您可以根据它执行操作。 多用户支持由 android 本身在某些设备上提供。它是由一些系统提供的机制选择的,您不需要为此实现任何东西。 Android 将在用户特定的环境中运行应用程序。我的应用程序是其中一个用户始终运行的服务,因此如果当前用户更改为安装了我的应用程序的用户,则必须启动它。因此我需要一个事件来捕捉这个并启动我的应用服务...... 我建议您将Google sign-in添加到您的应用程序中,或者添加support multiple users。 如果你还没有看到这篇文章,***.com/questions/15392126/… 获取ANDROID_ID,你可以知道哪个用户是你的。 【参考方案1】:你需要在 android 中寻找一个叫做 BroadcastReciever 的东西。它们用于捕获事件,例如相机点击、手机启动、屏幕解锁等...这些事件有一个名为 onReceive 的回调,您可以在其中实现登录。
这很简单,你可以谷歌一下。
在您的清单中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在您的应用程序元素中(确保为您的 BroadcastReceiver 使用完全限定的 [或相对] 类名):
<receiver android:name="com.example.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在 MyBroadcastReceiver.java 中:
package com.example;
public class MyBroadcastReceiver extends BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent)
Intent startServiceIntent = new Intent(context, MyService.class);
context.startService(startServiceIntent);
【讨论】:
“我有一个应用程序会在手机启动时自行启动”所以我知道这一点,但我找不到监听用户更改的意图...以上是关于监听用户更改事件(多用户设备)的主要内容,如果未能解决你的问题,请参考以下文章