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

Lir*_*man 5 android

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

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

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

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

Ida*_*dan 1

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

UserManager um = (UserManager) getSystemService(USER_SERVICE);
List<UserHandle> userProfiles = um.getUserProfiles();
Run Code Online (Sandbox Code Playgroud)

为此,您必须将应用程序设置为设备管理员(应该不是问题,因为您说它是内部完全托管的应用程序)