通信用語の基礎知識 全国のICカードこれひとつ 戻る

通常PC用 / 人気 更新 今日 カテ
電子計算機 > ソフト > システム > API・BIOS・ドライバー > Android
UserManager#isUserAGoat()
辞書:電算用語の基礎知識 計算機内部固件編 (TCAPI)
読み:ユーザーマネージャー-イズユーザーアゴート
外語:UserManager#isUserAGoat()
品詞:名詞

Android APIにある、ユーザーがヤギかどうかを調べるためのAPI。ユーザーがヤギならtrueを返す。

目次
概要
特徴
由来

AndroidにUserManager Classが追加されたのはAPIレベル17、Android 4.2からである。

この時、何かの冗談で、このメソッドが紛れ込んだ。

しかしユーザーは殆どの場合で人間、ごく稀に猿であるかもしれないくらいで、ヤギであることはない。従って、このAPIは常にfalseを返す仕様であった。

/**
 * 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;
}
Goat Simulator

スウェーデンのゲーム開発会社Coffee Stain Studiosが制作した、一言でいうと「ヤギになれる」、21世紀型のバカゲー「Goat Simulator」が登場した。しかも、2014(平成26)年9月にはあろうことかAndroid版まで登場してしまった。

ユーザーが本当にヤギになってしまったのでは致し方がない。そこで、このバカゲーがリリースされたすぐ後のAndroid、つまりAPIレベル21、Android 5.0からはこうなった。

/**
 * 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");
}

かくして、Android APIはAndroid版Goat Simulatorをインストールしている人はヤギであると返答するようになった。

Android 11以降

APIレベル30、つまりAndroid 11(Android R)以降では、「ヤギのプライバシーを保護するため」に、再び常にfalseが戻るようになった。

/**
 * 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を戻すようにしたのではなく、わざわざアプリのターゲットSDKバージョンを確認して互換性を確保しようとしているあたり、手が込んでいる。

リンク
用語の所属
Android

[再検索] [戻る]


通信用語の基礎知識検索システム WDIC Explorer Ver 7.04 (07-Mar-2021)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club
KisoDic