如何在android中启动应用程序集作为默认设置(即用于消息传递的Handcent,用于浏览的Dolphin)?
我只能找到如何为意图使用明确的包名称:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
switch (position) {
case 0: //messages
i.setPackage("com.android.mms");
break;
case 1: //inbox
i.setPackage("com.android.email");
break;
case 2: //browser
i.setPackage("com.android.browser");
default:
i = null;
}
答案 0 :(得分:2)
如何在android中启动应用程序集作为默认设置(即用于消息传递的Handcent,用于浏览的Dolphin)?
“默认”用于特定操作(例如,发送消息),而不是一般的“消息”概念。
此外,您在上面显示的代码使用SDK中不存在的内容(即特定包)。您的代码将在设备制造商更换应用程序的某些设备上中断。当股票应用程序被重构或以其他方式重命名时,您的代码可能会在Android的未来版本中中断。
我认为你需要重新考虑你想要实现的目标。
答案 1 :(得分:1)
您可以搜索满足给定Intent的应用程序(例如,ACTION_SEND),确定您想要的应用程序,检索其组件名称,然后使用指定组件名称的其他Intent启动它。
开始于:
Intent intent = new Intent(...);
List<ResolveInfo> list = getPackageManager().queryIntentActivities(
intent, PackageManager.MATCH_DEFAULT_ONLY);