public void SetDefaultCalendar(Context context){
/**
* import android.content.pm.PackageManager;
* import android.content.pm.ResolveInfo;
* import android.content.IntentFilter;
* import android.content.ComponentName;
* import android.net.Uri;
*/
String default_calendar = "com.google.android.calendar";
String action = "android.intent.action.VIEW";
String type = "time/epoch";
String uri = Uri.parse("content://com.android.calendar/time");
String category = "android.intent.category.DEFAULT";
PackageManager pm = context.getPackageManager();
Intent intent = new Intent(action);
intent.setDataAndType(uri,type);
intent.addCategory(category);
List<ResolveInfo> list = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
int size = list.size();
ComponentName[] arrayOfComponentName = new ComponentName[size];
ComponentName component = null ;
for(int i=0;i<size;i++){
ResolveInfo info = list.get(i);
pm.clearPackagePreferredActivities(info.activityInfo.packageName);
ComponentName componentName = new ComponentName(info.activityInfo.packageName,info.activityInfo.name);
arrayOfComponentName[i] = componentName;
if(default_calendar.equals(info.activityInfo.packageName)){
component = new ComponentName(info.activityInfo.packageName,info.activityInfo.name);
}
}
if(component == null){
return;
}
IntentFilter filter = new IntentFilter(action);
try{
filter.addDataType(type);
}catch(IntentFilter.MalformedMimeTypeException e){
Log.d("default_calendar", "addDataType "+e);
}
filter.addCategory(category);
pm.addPreferredActivity(filter,IntentFilter.MATCH_CATEGORY_TYPE, arrayOfComponentName, component);
}
设置默认日历应用
最新推荐文章于 2022-01-11 14:19:05 发布