首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读Android4.4中的短信

阅读Android4.4中的短信
EN

Stack Overflow用户
提问于 2014-11-11 10:51:38
回答 2查看 3.8K关注 0票数 1

正如我从多个来源读到的,Android4.4中的API有一些变化,等等。没错,我的代码现在不起作用了:(

基本上,我想通过删除垃圾邮件SMSes来读取收到的短信并过滤可能的垃圾邮件。由于删除现在无法完成,我只是试图提示,新收到的短信是潜在的垃圾邮件。

下面是非Android4.4版本的源代码片段:

代码语言:javascript
复制
public class Sms extends BroadcastReceiver{

    private static final String ACTION = "android.provider.Telephony.SMS_DELIVER";

     public void onReceive(Context context, Intent intent) {
         Bundle pudsBundle = intent.getExtras();
         Object[] pdus = (Object[]) pudsBundle.get("pdus");
         SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);    
        // Log.i(TAG,  messages.getMessageBody());
             if(messages.getMessageBody().contains("Adv")) {

                 abortBroadcast();
             }
     }

}

我的申报文件:

代码语言:javascript
复制
<receiver android:name=".Sms" android:permission="android.permission.BROADCAST_SMS">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_DELIVER" />
            </intent-filter>                        
</receiver>

要让它在Android4.4中运行,我必须改变什么?我只想阅读传入的SMSes而不执行abortBroadcast。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-11 11:09:50

因为只有默认的短信应用程序才能接收SMS_DELIVER_ACTION广播。其他应用程序现在必须使用SMS_RECEIVED_ACTION广播,这是在API 19中引入的,不能中止。

这里的官方页面。

票数 1
EN

Stack Overflow用户

发布于 2014-11-12 02:02:51

终于找到了。您可以参考本教程:

http://code.tutsplus.com/tutorials/use-text-to-speech-on-android-to-read-out-incoming-messages--cms-22524

解释如何读取传入的SMSes。请注意,某些功能,如中止广播,删除短信将无法运行从Android4.4开始,除非用户选择您的应用程序作为默认的消息应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26863128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档