Android намерен открыть предпочтительный браузер
Я пытаюсь выяснить, как создать намерение, которое откроет предпочтительный браузер пользователя без указания URL-адреса. Я знаю, как открыть его, указав конкретный URL-адрес следующим образом:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse("http://www.google.com"));
context.startActivity(intent);
Я не хочу открывать браузер на любой странице, в частности, только на домашней странице или на любой другой странице, на которой был пользователь. Я думал о поиске главной страницы, установленной в приложении, но вы не можете сделать это с помощью приложения браузера по умолчанию, потому что оно личное. Кто-нибудь знает, как это сделать?
Ответы
Ответ 1
Вот как я это сделал:
String packageName = "com.android.browser";
String className = "com.android.browser.BrowserActivity";
Intent internetIntent = new Intent(Intent.ACTION_VIEW);
internetIntent.addCategory(Intent.CATEGORY_LAUNCHER);
internetIntent.setClassName(packageName, className);
mHomeActivity.startActivity(internetIntent);
Если у вас нет главной страницы, она откроет пустую страницу (по крайней мере, на Android 2.1).
Ответ 2
Uri uri = Uri.parse("www.google.com");
Intent intent = new Intent(Intent.ACTION_VIEW,uri);
// Create and start the chooser
Intent chooser = Intent.createChooser(intent, "Open with");
startActivity(chooser);
Этот код создает намерение открыть указанный пользователем браузер.
Ответ 3
Это поздний ответ, но похоже, что эта функциональность доступна в API 15:
Intent browser = Intent.makeMainSelectorActivity(
Intent.ACTION_VIEW,
Intent.CATEGORY_APP_BROWSER);
startActivity(browser);
Документы для makeMainSelectorActivity
Ответ 4
URL-адрес домашней страницы, указанный пользователем, будет сохранен в настройках для любого используемого им браузера. При использовании андроидной "песочницы" для приложений у вас не будет доступа к этому, если у приложения нет Content Provider, который разрешает доступ. Кроме того, поставщик контента будет отличаться между приложениями браузера, и вам будет трудно покрыть те, которые существуют.
Вы пытались открыть веб-страницу, которая пытается обновить URL-адрес домашней страницы пользователей с помощью JavaScript?
Ответ 5
Подробнее см. эту статью неявное намерение в android
Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.maidofknowledge.com"));
Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser");
if (sendIntent.resolveActivity(getPackageManager()) != null) {
startActivity(chooser);