final PackageManager pkgMgt = this.getPackageManager();
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addFlags(0x10200000);
intent.addCategory("android.intent.category.DEFAULT");
intent.addCategory("android.intent.category.HOME");
final ResolveInfo res = pkgMgt.resolveActivity(intent, 0);
if (res.activityInfo.packageName.equals("android")) {
// 有多个桌面程序存在,且未指定默认项时;
startActivity(intent);
} else {
pkgMgt.clearPackagePreferredActivities(res.activityInfo.packageName);
Log.e(TAG, res.activityInfo.packageName);
startActivity(intent);
}
这个方法需要系统签名否则
pkgMgt.clearPackagePreferredActivities(res.activityInfo.packageName);
会报权限问题