ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
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; }
スウェーデンのゲーム開発会社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をインストールしている人はヤギであると返答するようになった。
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バージョンを確認して互換性を確保しようとしているあたり、手が込んでいる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます