I bought an Octocat Figurine

GitHub Shop で購入した。Cyber Monday で 25% OFF ということで $40 のところを $30 で購入できた。送料は $20.83 だった。関税がかかるものと思っていたんだけど、調べてみたら1万以下は免税扱いになるみたい。

よくある質問とその回答 : 東京税関 Tokyo Customs

Note

Kotlin コントリビュータへの第一歩 #ktac2014

Kotlin Advent Calendar 2014 の 4 日目。

Kotlin コントリビュータである @ngsw_taro さんもきっとこのページを読んだはず。ということで Contributing to Kotlin を訳してみた。

Continue reading

Kotlin, Programming

AndroidManifest.xml の <uses-library> が存在するか確認する方法

AndroidManifest.xml に <uses-library> で指定したライブラリが存在するか確認する方法を調べた。

すべての端末で使わないため required を false にする必要があった。しかしそうすると、ライブラリが存在しない可能性があるため NoClassDefFoundErrorNoSuchMethodError の例外が発生してしまう可能性がある。そこで Class.forName(String) でクラスの存在を確認して対応した。

だが端末によってライブラリのバージョンが違い、クラスは存在していてもメソッドが存在しないケースが出てきた。一つひとつ確認するのは面倒だったので、やはり <uses-library> が存在するか確認することにした。

PackageManager.html#getSystemSharedLibraryNames() というそのまんまのメソッドがあった。なんで今まで気づかなかったんだろ…。

Android

Android の DevicePolicyManager の addUserRestriction について

Profile Owner が DevicePolicyManager#addUserRestriction(ComponentName, String) を呼んだ場合にどうなるか確認した。

Continue reading

Android

Android 5.0 の Device Owner を有効にする方法

Device Owner の設定画面

Android 5.0 で追加された Device Owner を有効にする方法をメモっとく。

まずは、Device Owner となって端末を管理する MDM アプリを用意する。
それをサーバに置いてダウンロードできるようにする。
apk ファイルの checksum も控えておこう。nfc – Checksum Error while provisioning Android Lollipop – Stack Overflow を参考にした。

そして Device Owner の設定は Android Beam で起動できる。そのため、NdefMessage を送信するアプリを用意する。MDM アプリのパッケージ名と apk ファイルのダウンロード URL、そして checksum を Properties に詰め込んで送信する。

言語設定画面

ただし、Device Owner を有効にできるのはセットアップの終わっていない端末だけ。端末を初期化して、端末の言語設定画面のとろこで Android Beam を行うのだ。それ以外で送信しても、既に設定済みとなって有効にできない。

また、MDM アプリの apk ファイルをダウンロードするため、Wi-Fi を設定しなければならない。Android Beam でパッケージ名と一緒に Wi-Fi 情報も送信できるが接続できなかった。(Device Owner の有効に失敗した場合は端末を初期化するしかない)
しかたなく、Wi-Fi 設定を行ってから、戻って有効にした。

Android