怎么样用代码把一个视频播放器设置为系统默认的视频播放器.

Android 码拜 9年前 (2015-11-27) 1162次浏览
  android:sharedUserId=”android.uid.system”
<uses-permission android:name=”android.permission.SET_PREFERRED_APPLICATIONS” />
权限已经具备,并加做了系统签名.
网上找了一段设置默认浏览器的代码没有修改成功,或系统的这个关联信息被存储在什么地方了假如能直接修改那就更方便了一直没找到,讨教高手帮助.
下面是代码:
void setdefplayer() {
PackageManager packageManager = mContext.getPackageManager();
String str1 = “android.intent.category.DEFAULT”;
String str2 = “android.intent.category.BROWSABLE”;
String str3 = “android.intent.action.VIEW”;
// 设置默认项的必须参数之一,用户的操作符合该过滤器时,默认设置起效
IntentFilter filter = new IntentFilter(str3);
filter.addCategory(str1);
filter.addCategory(str2);
filter.addDataScheme(“file”);
// 设置Activity
ComponentName component = new ComponentName(“com.mxtech.videoplayer.pro”,
“com.mxtech.videoplayer.pro.ActivityMediaList”);
Intent intent = new Intent(str3);
intent.addCategory(str2);
intent.addCategory(str1);
Uri uri = Uri.parse(“file://”);
intent.setDataAndType(uri, null);
// 找出手机当前安装的全部程序
List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(intent,
PackageManager.GET_INTENT_FILTERS);
int size = resolveInfoList.size();
ComponentName[] arrayOfComponentName = new ComponentName[size];
Log.d(TAG, “resolveInfoList.size():” + size);
for (int i = 0; i < size; i++) {
ActivityInfo activityInfo = resolveInfoList.get(i).activityInfo;
String packageName = activityInfo.packageName;
String className = activityInfo.name;
Log.d(TAG, “packageName” + “|” + className);
// 清除之前的默认设置
packageManager.clearPackagePreferredActivities(packageName);
ComponentName componentName = new ComponentName(packageName, className);
arrayOfComponentName[i] = componentName;
}
packageManager.addPreferredActivity(filter, IntentFilter.MATCH_CATEGORY_SCHEME,
arrayOfComponentName, component);
}
解决方案:100分
应该不可能吧  不然照那些大公司尿性  早给本人的app弄上了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样用代码把一个视频播放器设置为系统默认的视频播放器.
喜欢 (0)
[1034331897@qq.com]
分享 (0)