Я хочу конкретно выполнить браузер Android по умолчанию для данного URL. Я использую этот код:
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" />
к декларации.
Я пропускаю что-то здесь?
PS: я не интересуюсь использованием startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")))
поскольку это перечислит весь выбор для просмотра Intent
.
Я использую это, все в порядке.
intent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));
Думаю, вы знаете, в чем дело. :)
Обратите внимание, что браузер по умолчанию может быть переопределен , и это не всегда встроенное приложение браузера, это может быть, например, Opera Mini.
Сделать нужно так:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("http://www.google.com");
intent.setData(data);
startActivity(intent);
Один из способов открыть URL-адрес в браузере из кода - использовать веб-просмотр.
Создайте WebViewClientClass, который расширяет WebViewClient, например:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
Затем создайте веб-просмотр.
Установите webview.setWebViewClient (new WebViewClientClass ());
--- это небольшой обходной путь, позволяющий не использовать браузер по умолчанию.
Затем возьмите URL-адрес в тексте редактирования и установите его для загрузки браузера как:
webview.loadurl(urlfield.getText().toString());
webview.requestFocus();
Это должно загрузить веб-браузер с URL-адресом, который вы запрашивали.
Надеюсь, это поможет ... :)