9

特定のURLに対してデフォルトのAndroidブラウザを具体的に実行したいと思います。私はこのコードを使用しています:

Intent i = new Intent();
i.setAction("android.intent.action.VIEW"); 
i.addCategory("android.intent.category.BROWSABLE");
i.setClassName("com.google.android.browser", "com.android.browser.BrowserActivity");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setData(Uri.parse(url));
startActivity(i);

私が受け取るエラーは次のとおりです。

Unable to find explicit activity class {
com.google.android.browser/com.android.browser.BrowserActivity}; 
have you declared this activity in your AndroidManifest.xml?

また、パッケージでインテントをフィルタリングしてみました。

i.setPackage("com.google.android.browser");

の代わりにsetClassName、しかし役に立たない:

No Activity found to handle Intent { act=android.intent.action.VIEW 
cat=[android.intent.category.BROWSABLE] 
dat=http://www.google.com/ flg=0x10000000 pkg=android }

<uses-library android:name="com.google.android.browser" />マニフェストにも追加してみました。

ここで何かが足りませんか?

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")))PS:ブラウジングのすべての選択肢が一覧表示されるので、使用することに興味はありませんIntent

4

3 に答える 3

6

デフォルトのブラウザは上書き可能であり、必ずしも組み込みのブラウザアプリであるとは限らないことに注意してください。たとえば、OperaMiniなどです。

あなたはこのようにする必要があります:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("http://www.google.com");
intent.setData(data);
startActivity(intent);
于 2010-07-25T14:16:19.763 に答える
6

私はこれを使用します、それは大丈夫です。

intent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));

私はあなたが何が悪いのか知っていると思います。:)

于 2010-08-16T16:04:31.397 に答える
1

コードからブラウザでURLを開く1つの方法は、Webビューを使用することです。

次のようにWebViewClientを拡張するWebViewClientClassを作成します。

public boolean shouldOverrideUrlLoading(WebView view, String url) {
   view.loadUrl(url);
   return true;
}

次に、Webビューを作成します。 Set webview.setWebViewClient(new WebViewClientClass()); ---これは小さな回避策であり、デフォルトのWebブラウザが引き継ぐことはありません。

次に、エディットテキストのURLを取得し、ブラウザを次のようにロードするように設定します。

webview.loadurl(urlfield.getText().toString());
webview.requestFocus();

これにより、要求したURLがWebブラウザに読み込まれます。

お役に立てれば... :)

于 2010-07-26T16:52:04.407 に答える