我正在尝试从我的应用程序打开 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中检索到的包名称是否错误?
最佳答案
以下是从应用程序启动浏览器的通用代码:
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 吗?
关于android - 无法使用包名称启动与我的应用程序不同的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683438/