Android 4.4 (KitKat) SMS Apis Change——Android 4.4的一个重大变化
Android团队通过Android开发博客透漏今年会放出Android 4.4 (KitKat) ,同时更新了 SMS 的部分API。博客上讲只有default SMS app才能对短信数据库有写权限,但是用户可以把第三方应用设置为default SMS app。有些中文的报道说“在Android 4.4中,只有默认的信息应程序才有权限接收和发送短信”,本文作者认为是不完全正确的,非default SMS app也能读写短信,只不过是不能写入短信数据库中。我们看一看android开发者博客是怎么讲述其他应用短信接收和发送问题的。
1)接收短信问题:
1、接收SMS_DELIVER_ACTION(
"android.provider.Telephony.SMS_DELIVER"
)的broadcast receiver,这个broadcast receiver需要有BROADCAST_SMS权限。这些是为了让你的应用能接收到SMS messages。
2、接收WAP_PUSH_DELIVER_ACTION(
"android.provider.Telephony.WAP_PUSH_DELIVER"
) 的broadcast receiver,这个需要BROADCAST_WAP_PUSH权限。这些是为了让你的应用能接收到MMS messages。
3、实现发送短信功能,需要有个Activity完成
ACTION_SENDTO
("android.intent.action.SENDTO"
)intent filter,并使用schemas,sms:
,smsto:
,mms:
, 以及mmsto:。
这可以使其他应用调用你的发短信能力。
4、实现一个提供intent filter for
ACTION_RESPONSE_VIA_MESSAGE
("android.intent.action.RESPOND_VIA_MESSAGE"
) with schemas,sms:
,smsto:
,mms:
, andmmsto
服务。这个服务需要SEND_RESPOND_VIA_MESSAGE权限。
这允许用户使用您的应用程序提供即时短信回应电话呼入。
下面是一个manifest文件的例子:
Intent intent = new Intent(context, Sms.Intents.ACTION_CHANGE_DEFAULT);intent.putExtra(Sms.Intents.EXTRA_PACKAGE_NAME, defaultSmsApp);startActivity(intent);
上面是一些Android4.4短信变化的介绍,大部分是翻译自Android开发者博客,由于作者英语水平有限,可能与原作者的理解有些出入,敬请读者谅解。
/*** @author 张兴业* http://blog.csdn.net/xyz_lmn* iOS入门群:83702688* android开发进阶群:241395671* 我的新浪微博:@张兴业TBOW*/
参考:
http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html
- 1楼u0119604021小时前
- 不错,学习了