Android:检查当前用户是不是是客人

Posted

技术标签:

【中文标题】Android:检查当前用户是不是是客人【英文标题】:Android: Check if Current User is a guestAndroid:检查当前用户是否是客人 【发布时间】:2021-08-28 17:11:39 【问题描述】:

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

【问题讨论】:

请检查:***.com/questions/14749504/… @Akki,这是如果用户是所有者,而不是如果他们是客人。来宾没有 const,因此此方法不起作用 我认为没有任何直接的方法可以满足您的要求。 【参考方案1】:

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

此外,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);

但是,似乎不能保证你会在这里得到你想要的。

【讨论】:

反射不再适用于 Android 28+ 就是这样,我试图用“似乎无法保证你会在这里得到你想要的东西”这样说。如果可能的话,我也在寻找解决方案。

以上是关于Android:检查当前用户是不是是客人的主要内容,如果未能解决你的问题,请参考以下文章

Android Google Map如何检查用户是不是在标记矩形区域

检查字符串是android代码中的URL? [复制]

如何在android中检查当前的互联网连接是不是可用

PHP:如何检查给定组的成员是不是允许更改模型

在 Google Apps 脚本中检查电子邮件是不是有效

检查客户是不是已经在 WooCommerce 中购买过东西