android4.4 获取符合默认短信应用要求的短信应用包名

android 4.4有一坨更新,短信机制改变是更新里面的一项重头戏

怎样让短信应用适用于4.4官网那篇博客已经被翻译然后转载了N遍,我就随便贴一个链接上来吧4.4短信应用变更


这里我不是要说明怎样去设置短信应用,下面要说的是一个比较小众的需求,就是如何在你自己的应用里面让用户将默认短信应用切换到别的应用(或者是在你自己的app里面让用户选择默认短信应用,就不用跑到设置里面的“更过“中去找到那玩意儿再选择了)


设置默认短信应用的思路就是: 获取符合要求的应用的信息 -- 获取这些应用的包名 -- 根据包名来设置默认短信应用


前面两步是关键,第三步可以参照上面4.4短信应用变更


我就抛砖引玉一下,这个方法不是很完善,你可以根据4.4默认短信的特征来进行再深度的筛选


代码如下:

/**
	 * 获取默认短信应用的包名数组
	 * @return
	 */
	private String[] getSmsApps(){
		PackageManager pm = this.getPackageManager();
		Intent intent = new Intent();
		intent.setAction("android.provider.Telephony.SMS_DELIVER");
		List<ResolveInfo> receivers = pm.queryBroadcastReceivers(intent, PackageManager.GET_INTENT_FILTERS);
		String[] result = new String[receivers.size()];
		for (int i = 0; i < receivers.size(); i++) {
			result[i] = receivers.get(i).activityInfo.packageName;
		}
		return result;
	}




android4.4 获取符合默认短信应用要求的短信应用包名

上一篇:Unable to instantiate application 问题解决


下一篇:AndroidAnnotations部署