| ア | イ | ウ | エ | オ |
| カ | キ | ク | ケ | コ |
| サ | シ | ス | セ | ソ |
| タ | チ | ツ | テ | ト |
| ナ | ニ | ヌ | ネ | ノ |
| ハ | ヒ | フ | ヘ | ホ |
| マ | ミ | ム | メ | モ |
| ヤ | ユ | ヨ | ||
| ラ | リ | ル | レ | ロ |
| ワ | ヰ | ヴ | ヱ | ヲ |
| ン |
| 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バージョンを確認して互換性を確保しようとしているあたり、手が込んでいる。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます