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




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。