我通读了 UserManager 和 UserHandle 文档,找不到任何可以返回布尔值回答问题的方法。任何人都知道如何确定这一点?
问问题
138 次
1 回答
0
UserInfo类有“<em>isGuest()”方法返回一个布尔值,UserManager.getUsers() 返回一个 UserInfo 类型的列表。但是,所有这些方法都是隐藏的,不支持 3rd 方应用程序。
此外,getUsers()方法需要“<em>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);
但是,似乎不能保证你会在这里得到你想要的。
于 2021-06-15T08:57:44.103 回答