我们可以在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命令相同的列表??
答案 0 :(得分:1)
如果您具有设备的根访问权限,或者能够将您的应用程序构建为系统特权应用程序,则可以使用Privileged Permission Whitelisting获得android.permission.MANAGE_USERS
权限(这还要求您sign your app with the platform signature)。然后,您可以使用Java反射调用UserInfo来获得所有UserManager.getUsers()
的列表。