Android - 如何通过用户名以编程方式切换用户?

标签 android

我是 Android 的新手,我必须在工作中创建一个执行以下任务的应用程序:

  1. 我监听一个应该向我发送用户名的套接字。
  2. 收到用户名后,我需要在平板电脑上切换到该用户帐户。
  3. 如果我收到与当前活跃用户相同的用户名,我就不需要切换(很明显)。

我们的平板电脑已 root 并运行 CyanogenMod 12.1 和 Android 5.1.1 Lollipop。 由于这不是将从 Play 商店下载的商业版本,我可以假设我可能需要的所有权限都会被授予。

我搜索了一个干净的代码方法来做到这一点,而无需运行 shell 命令或其他 hack,但找不到任何东西......

最佳答案

我自己还没有尝试过,但您应该能够在设备上设置所有 UserHandle,然后使用 DevicePolicyManager switchUser() method .

UserManager um = (UserManager) getSystemService(USER_SERVICE);
List<UserHandle> userProfiles = um.getUserProfiles();

为此,您必须 set your app as a device administrator (应该不是问题,因为你说它是一个内部完全托管的应用程序)

关于Android - 如何通过用户名以编程方式切换用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487602/

相关文章:

Android:在什么情况下出现对话框会导致 onPause() 被调用?

android - 如何检查 Google Play 服务是否已从 android 中的代码启用/禁用

android - 如何计算android 3.0(平板电脑)系统栏的高度?

java - 在android中使用Fragment标签时出现XML错误

java - SQlite 列不存在

android - 将应用程序缓存保存在 android 内部 sdcard 中的方法?

android - 在 Android 选项卡中显示具有模糊效果的 Activity

Android 开发人员指南中的 Android Time Picker 示例

android - 将毫秒转换为 Joda 日期时间或区域 0000

java - Android SQLite 创建具有加密列名的表