频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
Android KK上如何让三方APK发送的SMS不显示出来
2014-08-30 11:02:23         来源:曹浩洋的专栏  
收藏   我要投稿
KK上sms framework架构做了修改,引入了default application的概念
假如手机上安装了多个收发信息的APK,那么必须设置一个作为default AP,只有default AP才有权限去读写数据库
如果非default AP去发送彩信,发送完后Framework会将这条短信写入数据库

KK之前的版本,如果三方Apk去发送短信,只要这个apk不将该短信内容写入数据库就不会显示。
kk之后的版本,如果三方APK去发送短信,虽然这个apk不将该短信内容写入数据库,但由于它并不是default AP,发送完后framework会检测到这种情况然后将该短信写入数据库

以com.carrot.iceworld这个apk为例,如果不希望它发送出来的sms显示出来,需要做以下修改:

SMSDispatcher.java --> handleSendComplete
if ((pplResult == false) && SmsApplication.shouldWriteMessageForPackage(
tracker.mAppInfo.applicationInfo.packageName, mContext)) {
// Persist it into the SMS database as a sent message
// so the user can see it in their default app.
tracker.writeSentMessage(mContext);
}
将以上的if语句修改为
if ((pplResult == false) && SmsApplication.shouldWriteMessageForPackage(
tracker.mAppInfo.applicationInfo.packageName, mContext) &&!tracker.mAppInfo.applicationInfo.packageName.equals("com.carrot.iceworld"))

如果是com.carrot.iceworld这个apk发送的短信,则不让FW写入到db里
请客户在这个if语句前加行log,将tracker.mAppInfo.applicationInfo.packageName的值打印出来以便后续debug
点击复制链接 与好友分享!回本站首页
相关TAG标签 三方
上一篇:andriod 4.0以上版本不调用onConfigrationChange方法的解决办法
下一篇:Android开发_备份短信
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站