2013年11月20日水曜日

[Android 4.4] Private browsing is not supported in WebView.

targetSdkVersion が 19 (Android 4.4 KitKat) 以上のとき、WebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) で WebView のインスタンスを作成すると次の例外が起きてクラッシュする。

java.lang.IllegalArgumentException: Private browsing is not supported in WebView.
 at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:203)
 at android.webkit.WebView.(WebView.java:508)
 at android.webkit.WebView.(WebView.java:475)

この振る舞いは、クラスリファレンス WebView | Android Developers にも移行ガイド Migrating to WebView in Android 4.4 | Android Developers にも書かれていないので注意が必要。


    public void init(final Map javaScriptInterfaces,
            final boolean privateBrowsing) {
        if (privateBrowsing) {
            mFactory.startYourEngines(true);
            final String msg = "Private browsing is not supported in WebView.";
            if (mAppTargetSdkVersion >= Build.VERSION_CODES.KITKAT) {
                throw new IllegalArgumentException(msg);
            } else {
              ...
https://android.googlesource.com/platform/frameworks/webview/+/android-4.4_r1.1/chromium/java/com/android/webview/chromium/WebViewChromium.java より

WebView のコンストラクタから呼ばれる init メソッドの実装を見る限り、targetSdkVersion >= Build.VERSION_CODES.KITKAT のときでもプライベートブラウジングを利用するのは不可能にみえる。

2013年7月20日土曜日

iPhone 5 の nano SIM を HTL22 で使う

UBEST製 マイクロSIMアダプタ が届いたので、試してみた。


パッケージはとても簡素。中に細かいゴミが入っていたが別に支障はない。


同梱のピンで iPhone 5 の SIM トレイを外せた


取り外した nano SIM を nano-micro SIM アダプタに差し込み。粘着シートがアダプタに取り付け済みのタイプなので、シールを追加で貼る必要はない。


アダプタを挿入して HTL22 を起動し、 speedtest を実行したところ。 PING 43ms, DL 42Mbps, UL 16Mbps と非常に快適。入れ方が悪かったのか、一度目では HTL22 が SIM を認識しなかった。出し入れしたところ解決した。