Android - 获取用户和个人资料名称列表

时间:2016-05-28 04:17:34

标签: android user-profile profile-owner

我们可以在Android设备上创建多个用户和个人资料,例如,有一个主要用户,我还设置了一个名为"工作资料"的工作资料。

使用以下adb命令:

adb shell pm list users

我得到了这个结果:

  

UserInfo {0:我的用户:13}正在运行       UserInfo {10:工作资料:30}正在运行

好,我可以在其上看到名为Work Profile的用户信息。 现在,我想从我的应用程序中获取此列表。

我尝试使用此代码:

for(Account account: AccountManager.get(this).getAccounts()) {
        DebugLog.e("COUCOU " + account.name + " " + account.toString());
    }

但工作资料帐户未显示在列表中。只有主要用户...... 知道如何获得与ADB shell命令相同的列表??

1 个答案:

答案 0 :(得分:1)

如果您具有设备的根访问权限,或者能够将您的应用程序构建为系统特权应用程序,则可以使用Privileged Permission Whitelisting获得android.permission.MANAGE_USERS权限(这还要求您sign your app with the platform signature)。然后,您可以使用Java反射调用UserInfo来获得所有UserManager.getUsers()的列表。