Да, это не будет работать в Lollipop , или может не работать на каких-либо телефонах изготовленных (Sony, Samsung) телефонов, поскольку вы пытаетесь открыть заявку с именем пакета com.android.browser
internetIntent.setComponent(new ComponentName(
"com.android.browser",
"com.android.browser.BrowserActivity"));
В браузере Lollipop по умолчанию используется хром, у которого есть имя пакета что-то еще. И нет приложения с пакетом com.android.browser
в Lollipop.
То же самое может случиться с любыми другими телефонами Sony/Samsung.
Что вы можете сделать, это либо вызвать для Application Chooser Dialog
или find the default browser application, and open it
1) Код для применения Chooser:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://"));
startActivity(intent);
2) код, чтобы найти приложение по умолчанию и запустить его:
ComponentName cn=null;
Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://"));
ResolveInfo resolveInfo = packageManager.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
if (resolveInfo.activityInfo.packageName.equals("android")) {
List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(browserIntent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo info : resolveInfos) {
if (!info.activityInfo.packageName.equals("android")) {
cn = new ComponentName(info.activityInfo.packageName, info.activityInfo.name);
}
}
if(cn==null)
cn = new ComponentName("com.android.browser", "com.android.browser.BrowserActivity");
} else {
cn = new ComponentName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
}
if(cn!=null){
Intent openIntent = new Intent();
openIntent.setComponent(cn);
openIntent.setData(Uri.parse("http://www.google.com/"));
startActivity(openIntent);
}
Что вы подразумеваете под «неправильной работой»? любое исключение –
Есть ли причина, по которой вы устанавливаете конкретный компонент? – ianhanniballake
, вы НЕ должны указывать жесткий код для браузера, то есть плохой стиль кодирования, чтобы пользователь мог указать, какой браузер они хотели бы использовать. Пользователь неявный намерение вызвать браузер вместо этого. – JoxTraex