正确的Android UserManager.isUserAGoat()使用场景是什么?

内容来自 DOC[ https://q.houxu6.top/?s=正确的Android UserManager.isUserAGoat()使用场景是什么?](https://q.houxu6.top/?s=正确的Android UserManager.isUserAGoat()使用场景是什么?)

我正在查看Android 4.2中引入的新APIs。
在查看UserManager类时,我遇到了以下方法:

public boolean isUserAGoat()

用于确定进行此调用的用户是否受到传送的影响。

返回进行此调用的用户是否为山羊。

如何使用和何时应该使用它?


Android R更新:

从Android R开始,该方法总是返回false。谷歌表示这样做是为了“保护山羊隐私”。

/\*\*
 \* 用于确定进行此调用的用户是否受传送影响。
 \* @return 如果进行此调用的用户是山羊,则返回true。
 \*/
public boolean isUserAGoat() {
    if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.R) {
        return false;
    }
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

之前的答案是:

在API 21之前,该方法的实现一直返回false,直到在API 21中进行了更改。

/\*\*
 \* 用于确定进行此调用的用户是否受传送影响。
 \* @return 如果进行此调用的用户是山羊,则返回true。
 \*/
public boolean isUserAGoat() {
    return false;
}

从源代码来看,对于我们这些开发者来说,这个方法似乎没有什么实际用途。有人之前表示它可能是一个彩蛋(Easter egg)

在API 21中,实现方式被更改为检查是否存在具有包名com.coffeestainstudios.goatsimulator的已安装应用程序。

/\*\*
 \* 用于确定进行此调用的用户是否受传送影响。
 \*
 \* <p>As of {@link android.os.Build.VERSION\_CODES#LOLLIPOP}, this method can
 \* now automatically identify goats using advanced goat recognition technology.</p>
 \*
 \* @return Returns true if the user making this call is a goat.
 \*/
public boolean isUserAGoat() {
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

这里是源代码和更改记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值