intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity")
Откроет любое приложение с именем пакета «com.android.browser». Проблема с этим заключается в том, что в разных версиях Android и разных производителей браузер по умолчанию меняется. Например, устройства Nexus, как правило, поставляются с предустановленным приложением Chrome, которое имеет другое имя пакета.
Unable to find explicit activity class
(com.android.browser/com.android.browser.BrowserActivity);
have you declared this activity in your AndroidManifest.xml?
Ошибка, которую вы скопировали, объясняет, что нет приложения с таким именем пакета. browserIntent.setClassName() используется для явного открытия определенного приложения, что означает, что оно не должно предоставлять подсказку с вопросом, какой браузер вы хотели бы использовать.
Если это то, чего вы хотите избежать (всплывающее окно), вы можете проверить, какие браузеры установлены на устройстве, и, возможно, предложить загрузить его, прежде чем делать ссылки активными.
вы также можете использовать код из другого предложения.
String url = "content://com.android.htmlfileprovider/sdcard/mydir/myfile.html";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "text/html");
startActivity(intent);
Это указывает, что вы хотите открыть действие, которое может обрабатывать данные типа «текст/html». Просмотрев его. Это предоставит вам список приложений (различных установленных браузеров) для выбора.
person
Michael Kent
schedule
12.01.2015