1

私はAndroidアプリを開発しており、他の機能の中でも、外部WebブラウザーでいくつかのURLを開く必要があります。そのためのデフォルトのアプリケーションをプログラムで設定して、ユーザーが使用可能なブラウザーのリストから選択できないようにすることはできますか?つまり、デフォルトのブラウザを自分のアプリにのみ設定し、オペレーティングシステム全体には設定したくないということです。

4

3 に答える 3

3

はい、このために、アプリケーションに常にネイティブのAndroidブラウザのみを開くように強制することができます。このためには、次のようなアプリケーションの起動Activityを特定する必要があります。Browser

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.google.android.browser","com.google.android.browser.BrowserActivity"));
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
Uri uri = Uri.parse(url);
intent.setData(uri);
try
{
    startActivity(intent);
}
catch (Exception e)
{
   e.printStackTrace();
}
于 2012-09-25T14:28:17.990 に答える
2

インテントには.setPackageを使用できます:http ://developer.android.com/reference/android/content/Intent.html#setPackage(java.lang.String )。ブラウザのパッケージ名(マニフェストのpackage属性で定義)を使用して呼び出します。

文字列を共有するためにGoogle+アプリケーションを起動するために似たようなものを使用しています:

Intent shareIntent = ShareCompat.IntentBuilder.from(getActivity())
           .setText("Dummy string to share")
           .setType("text/plain")
           .getIntent()
           .setPackage("com.google.android.apps.plus");

        startActivity(shareIntent);

私の例では、「com.google.android.apps.plus」はGoogle+アプリケーションのパッケージ名です。

于 2012-09-25T14:23:21.640 に答える
0

BrowserクラスのSharedpreferenceは"MODE_private"であるため、プログラムで直接home_pageの変更手順にアクセスすることはできません。

やりたい場合は、Browser.javaオープンソースコードを使用して、そこからアイデアを得る必要があります。

于 2013-02-26T11:52:13.010 に答える