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

Zou*_*uBi 6 android user-profile profile-owner

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

使用以下 adb 命令:

adb shell pm list users
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

UserInfo{0:My User:13} 正在运行 UserInfo{10:Work Profile:30} 正在运行

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

我尝试使用此代码:

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

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

sha*_*afi 5

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

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

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

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

您可以使用UserManager处理用户,并且可以使用getUserProfiles获取当前用户的配置文件列表,但您将得到的是 UserHandle 您可以使用它来获取 userId),如何获取所有用户的列表这个名称我还没有找到,但在最坏的情况下,你可以使用 shell 命令 pm,如这篇关于 Android 上的多个用户帐户的文章中所示。