我正在尝试从我的应用程序中打开Chrome应用。代码很简单。
我使用以下代码获取了Chrome应用包的名称:
PackageManager manager = Values.activity.getPackageManager();
Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0);
for(ResolveInfo ri:availableActivities){
apps.add(ri.activityInfo.packageName);
}
//the package name of Chrome from packagemanager is "com.android.chrome"
我试图像这样打开Chrome:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.android.chrome");
startActivity( LaunchIntent );
但没有错误就没有任何事情发生,我的logcat说:
12-28 20:28:52.298: I/ActivityManager(482): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.chrome cmp=com.android.chrome/com.google.android.apps.chrome.Main} from pid 20474
我错过了什么?从packagemanager检索的包名是错误的吗?
答案 0 :(得分:2)
以下是从您的应用程序启动浏览器的通用代码:
String uriString = "http://stackoverflow.com/";
Intent intent = new Intent();
intent.setData(Uri.parse(uriString));
intent.setAction(Intent.ACTION_VIEW);
if (intent.resolveActivity(getPackageManager())!= null) {
startActivity(intent);
} else {
// Any browser is not available
}
我可以知道您为什么只想启动Chrome吗?