UserManager#isUserAGoat()

読み:ユーザーマネージャー・イズユーザーアゴート
外語:UserManager#isUserAGoat() 英語
品詞:名詞

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

目次

  • java.lang.Object
    • android.os.UserManager
      • boolean isUserAGoat()

由来

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

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club