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



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

使用以下 adb 命令:

adb shell pm list users

我得到这个结果:

用户

信息{0:我的用户:13} 正在运行 用户信息{10:工作配置文件:30} 正在运行

很好,我可以看到我的用户信息上面有"工作配置文件"的名称。现在,我想从我的应用程序中获取此列表。

我尝试使用此代码:

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

但工作配置文件帐户未显示在列表中。只有主用户...知道我如何获得与 ADB shell 命令相同的列表吗?

您将用户与帐户混淆了。您正在使用的内容只会为您提供当前用户的帐户。

一个设备可以有多个用户,相当于计算机上的用户。

一个用户可以拥有多个帐户,即Gmail,Facebook,Twitter等。这些帐户可以在用户之间共享,也可以不共享。

有关

该主题的更多信息,请查看有关支持多个用户的官方页面。

您可以使用UserManager处理用户,也可以使用getUserProfiles获取当前用户的配置文件列表,但是您将获得一个UserHandle(可用于获取userId),如何获取所有用户的列表,名称是我尚未发现的,但是在最坏的情况下,您可以使用shell命令pm, 如这篇关于 Android 上的多个用户帐户的文章所示。

如果您拥有设备的根访问权限,或者能够将应用构建为系统特权应用程序,则可以使用特权权限白名单来获取android.permission.MANAGE_USERS权限(这也要求您使用平台签名对应用程序进行签名)。然后,您可以通过使用 Java 反射调用 UserManager.getUsers() 来获取所有用户信息的列表。

相关内容

  • 没有找到相关文章

最新更新