Android: 检查当前用户是否是访客

Android: Check if Current User is a guest

我通读了 UserManager 和 UserHandle 文档,但找不到任何 return 布尔值回答问题的方法。有人知道如何确定吗?

UserInfo class 有“isGuest()”方法返回布尔值和 UserManager.getUsers() returns 一个 UserInfo 类型的列表。但是,所有这些方法都是隐藏的,不支持第 3 方应用程序。

此外,getUsers() 方法需要“android.Manifest.permission.MANAGE_USERS”权限,这仅适用于系统(或任何具有平台密钥的应用程序,或者如果您的应用程序仅在 Android 模拟器上运行,因为它获得默认平台密钥)。因此,即使您找到任何方法使用平台签名对您的应用程序进行签名,它也肯定会在一个或多个 Android 版本上中断。

尽管您可以尝试通过反射来获取 getUsers() 的访问权限,如下所示:

UserManager manager = (UserManager)getSystemService(USER_SERVICE);
Method method = manager.getClass().getMethod("getUsers", null);
Object users = method.invoke(manager, null);

但是,似乎也不能保证您会在这里得到想要的东西。