1. ホーム

[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)

2022-03-18 21:15:46

質問

で導入された新しいAPIを見ていました。 アンドロイド4.2 . を見ていると UserManager クラスで、次のようなメソッドを見つけました。

public boolean isUserAGoat()

この通話を行うユーザーがテレポートの対象であるかどうかを判断するために使用されます。

この関数は、この電話をかけているユーザーがヤギであるかどうかを返します。

いつ、どのように使用すればよいのでしょうか?

どのように解決するのですか?

Android Rのアップデートを行いました。

Android Rから、このメソッドは常にfalseを返すようになりました。Googleは、これはヤギのプライバシーを保護するための措置であると述べています。

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method can
 * now automatically identify goats using advanced goat recognition technology.</p>
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#R}, this method always returns
 * {@code false} in order to protect goat privacy.</p>
 *
 * @return Returns whether the user making this call is a goat.
 */
public boolean isUserAGoat() {
    if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.R) {
        return false;
    }
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}


前回の回答

彼らから ソース を返すために使用されるメソッドです。 false API21で変更されるまで。

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 * @return whether the user making this call is a goat 
 */
public boolean isUserAGoat() {
    return false;
}

このメソッドは、私たち開発者にとっては何の役にも立たないように見えます。以前、ある人が「もしかしたら イースターエッグ .

API21では、インストールされたアプリがあるかどうかをパッケージで確認するように実装が変更されました com.coffeestainstudios.goatsimulator

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <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");
}

以下は ソース 変更 .