2012年12月14日金曜日

標準ブラウザの有効チェック

Android4.0以降標準ブラウザを無効にすることができるようになった。
このためcontext.startActivity(new Intent(Intent.ACTION_VIEW, uri));
でブラウザを起動させようとしたとき、呼応するブラウザがないという状況があり得るようになった。
上記でブラウザを呼び出そうとするときにはIntentに呼応するブラウザがあるかを確認してから
startActivityする。

コードは以下

public static void startActivityWithBrowserCheck(Uri uri, Context context) {
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    List resInfo = context.getPackageManager()
                        .queryIntentActivities(intent, 0);
    if (resInfo.isEmpty()) {
        new AlertDialog.Builder(context)
                .setMessage("ブラウザが無効になっているため、\n有効にしてください。")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                }).show();
    } else {
        context.startActivity(intent);
    }
}


https://gist.github.com/4281897
gistのリンクの張り方わからん

12/17追記
外部アプリを呼び出す系のstartActivityはtry{}catchした方が正しいのかも。

0 件のコメント:

コメントを投稿