Android намеревается открыть предпочтительный браузер пользователя - PullRequest
13 голосов
/ 28 июня 2010

Я пытался выяснить, как создать намерение, которое откроет предпочтительный браузер пользователя без указания URL-адреса.Я знаю, как открыть его, указав конкретный URL-адрес, например:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse("http://www.google.com"));
context.startActivity(intent);

Я не хочу открывать браузер для какой-либо конкретной страницы, только для установленной домашней страницы или любой другой страницы, на которой был последний пользователь,Я думал о поиске домашней страницы, установленной в приложении, но вы не можете сделать это с приложением Browser по умолчанию, потому что оно закрытое.Кто-нибудь знает способ сделать это?

Ответы [ 6 ]

9 голосов
/ 14 января 2011

Вот как я это сделал:

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).

5 голосов
/ 02 октября 2012
            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);

Этот код создает намерение открыть указанный пользователем браузер.

2 голосов
/ 08 марта 2012

Это поздний ответ, но похоже, что эта функция доступна в API 15:

  Intent browser = Intent.makeMainSelectorActivity(
         Intent.ACTION_VIEW, 
         Intent.CATEGORY_APP_BROWSER);

  startActivity(browser);

Документы для makeMainSelectorActivity

1 голос
/ 31 марта 2019

Попробуйте это:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_APP_BROWSER);
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent.createChooser(intent, "Select Browser"));
}
else { //Popup a msg so as to know the reason of not opening the browser
    Toast.makeText(this, "There is no Browser App", Toast.LENGTH_LONG).show();
}

Сработало для меня, надеюсь, что вы тоже!

1 голос
/ 28 июня 2010

URL-адрес домашней страницы, указанный пользователем, будет сохранен в настройках любого используемого браузера. С моделью «песочницы» Android для приложений у вас не будет доступа к этому, если у приложения нет контент-провайдера, который разрешает доступ. Кроме того, поставщик контента будет отличаться в разных браузерных приложениях, и вам будет сложно охватить те из них, которые существуют.

Вы пытались открыть веб-страницу, которая пытается обновить URL-адрес домашней страницы пользователя с помощью JavaScript?

0 голосов
/ 08 октября 2016

Используйте код ниже

Intent sendIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.stackoverflow.com"));
Intent chooser = Intent.createChooser(sendIntent, "Choose Your Browser");
if (sendIntent.resolveActivity(getPackageManager()) != null) 
    startActivity(chooser);
...