Android中有时打开一个文件,系统会弹出一个应用程序选择列表供你选择.如果你把某个应用程序设为默认值,则不会弹出选择框,而会直接调用该程序.
设置方法如下:
PackageManager pm = getPackageManager();
IntentFilterfilter = new IntentFilter();
filter.addCategory("android.intent.category.DEFAULT");
ComponentName component = newComponentName("YourClearAppPakageName","YourClearAppClassName");
ComponentName[] components = new ComponentName[]{new ComponentName("YourPreferAppPakageName","YourPreferAppClassName"), component};
pm.clearPackagePreferredActivities("YourClearAppPakageName");
pm.addPreferredActivity(filter,IntentFilter.MATCH_CATEGORY_EMPTY, components, component);
例如:修改系统默认Launhcer,但不是唯一的Launcher
PackageManager pm = getPackageManager();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MAIN");
filter.addCategory("android.intent.category.HOME");
filter.addCategory("android.intent.category.DEFAULT");
Context context = getApplicationContext();
ComponentName component = new ComponentName(context.getPackageName(), TestReplaceHomeAppActivity.class.getName()); ComponentName[] components = new ComponentName[] {new ComponentName("com.android.launcher", "com.android.launcher.Launcher"), component};
pm.clearPackagePreferredActivities("com.android.launcher"); pm.addPreferredActivity(filter, IntentFilter.MATCH_CATEGORY_EMPTY, components, component);
==================