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);

==================

修改默认浏览器

PackageManager packageManager =context.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("http");
//设置浏览页面用的Activity
ComponentName component = new ComponentName(context
.getPackageName(), BrowserActivity.class.getName());

Intent intent = new Intent(str3);
intent.addCategory(str2);
intent.addCategory(str1);
Uri uri = Uri.parse("http://");
intent.setDataAndType(uri, null);

//找出手机当前安装的所有浏览器程序
List resolveInfoList = packageManager
.queryIntentActivities(intent,
PackageManager.GET_INTENT_FILTERS);

int size = resolveInfoList.size();
ComponentName[] arrayOfComponentName = newComponentName[size];
for (int i = 0; i < size; i++)
{
ActivityInfo activityInfo =resolveInfoList.get(i).activityInfo;
String packageName = activityInfo.packageName;
String className = activityInfo.name;
//清除之前的默认设置
packageManager.clearPackagePreferredActivities(packageName);
ComponentName componentName = newComponentName(packageName,
className);
arrayOfComponentName[i] = componentName;
}
packageManager.addPreferredActivity(filter,
IntentFilter.MATCH_CATEGORY_SCHEME,arrayOfComponentName,
component);

android 设置应用程序 默认值相关推荐

  1. android 设置应用程序默认值

    Android中有时打开一个文件,系统会弹出一个应用程序选择列表供你选择.如果你把某个应用程序设为默认值,则不会弹出选择框,而会直接调用该程序. 设置方法如下: PackageManager pm = ...

  2. Android设置应用程序默认语言

    我们只要分三步来写此功能: 第一步: 写一个类(FunctionApplication)继承Application,在onCreate()方法中实现如下方法: @Override public  vo ...

  3. java 设置默认list_java-如何设置ListPreferen的默认值

    java-如何设置ListPreferen的默认值 我需要在活动开始时为ListPreference设置默认值.我尝试使用ListPreference.setDefaultvalue("va ...

  4. rails设置表单默认值amp;amp;隐藏表单

    需求: 用户没有登录时游客评论,需要游客输入用户名和评论内容:当用户已登录时,读取session获取用户名,隐藏输入用户名的表达,用户直接发表评论. 用户评论代码: <h2>Add a c ...

  5. 设置easyui input默认值

    /*设置input 焦点*/ $(function () {//集体调用 $(".formTextBoxes input").each(function () {$(this).s ...

  6. Android 设置应用程序名称和图标

    Android 设置应用程序名称和图标 1. 名称 首先找到安卓项目中AndroidManifest.xml文件,然后再找application节点中的android:label可直接在label=写 ...

  7. 如何对语音信箱的多个号码设置不同的默认值

    1.1 如何对语音信箱的多个号码设置不同的默认值  MTK平台的机制是如果sim卡中有6F17这只文件,那么语音信息将会被保存在sim卡上,如果sim卡没有这只文件,语音信息则会被保存在nvram上. ...

  8. react设置props的默认值

    一般设置props的默认值有两种方式 指定 props 的默认值, 这个方法只有浏览器编译以后才会生效 class HandsomeBoy extends Component{// 设置默认值//de ...

  9. java 设置默认list,java – 如何设置ListPreference的默认值

    我需要设置活动开始时ListPreference的defult值. 我试过ListPreference.setDefaultvalue("value");但它使得列表的firts条 ...

最新文章

  1. fegin调用为什么要序列化_全方位解析Java的序列化
  2. 多级反馈队列调度算法事例
  3. Integer.valueof(null)报错
  4. spark standalone集群安装及spark on yarn
  5. C++中vector使用详细说明 (转)
  6. Hive 开窗必需掌握的rankdense_rankrow_number
  7. 一款软件测试脚本生成工具
  8. Geos库学习之(一)——Geos库介绍和编译
  9. IBM SPSS Statistics描述性统计分析使用教学
  10. axios 的简单增删查改 使用json-server启动的josn
  11. SView三维轻量化浏览器
  12. [开源]Qt图片调整之饱和度调节
  13. CGAN(条件生成-对抗网络)简述教程
  14. JMeter_Ubuntu上安装jmeter
  15. final 关键字:用来修饰类,方法,成员变量,局部变量
  16. 【ArcGIS】10 流域水系提取
  17. Linux 文件目录压缩与解压命令
  18. 使用阿里开源的EasyExcel导入导出EXCEL——工具类
  19. 游侠原创:安全狗“服云”深度评测!
  20. 八、Jmeter断言

热门文章

  1. 关于3Dmax出现错误奔溃和中毒解决问题方法
  2. 达梦数据库DCA认证培训笔记
  3. 经验丰富的视觉设计师自我介绍怎么写
  4. 基于51单片机数字频率计的设计
  5. (超级详细)状态路由协议实验-OSPF(最短路径优先)实验
  6. “吾道一以贯之”:华为Petal One的新格局
  7. 带源码下载—校园表白墙—基于Java Web,Mysql,jsp—设计报告分享
  8. [AHK]WinAutoHide – 让窗口贴边隐藏
  9. 服务器主板芯片和内存条兼容性,选购内存最大的坑:莫过于内存与主板的兼容性问题...
  10. Qt:中文注释导致编译不通过