Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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);