首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测短信输入和发送?

检测短信输入和发送?
EN

Stack Overflow用户
提问于 2015-07-09 19:39:50
回答 1查看 1.2K关注 0票数 1

通过ContentObserver检测输入和输出短消息是好的,还是使用BroadCast接收器接收到短信,ContentObserver用于发送短信?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-09 22:13:07

我有一个关于SMS和呼叫阻止程序的应用程序,但我从来没有上传它来玩商店,因为后Kitkat,你不能阻止短信。如果你想这么做,就别这样。我只是分享短信部分,你可以修改它,你想要的。

代码语言:javascript
复制
<!-- Android Permissions in manifest -->
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />

<!-- Define receiver inside the application tag -->
<receiver android:name="catchPackage.SmsController" android:process=":hascode_process" android:label="@string/sms_receiver"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter android:priority="999">
            <action android:name="android.provider.Telephony.SMS_DELIVER"/>
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
        </intent-filter>
    </receiver>
<!-- Broadcast receiver java code -->

 public void onReceive(Context context, Intent intent) {
    this.context = context;
          try{
              Bundle bundle = intent.getExtras();           //---get the SMS message passed in---
                SmsMessage[] msgs = null;
                String msg_from = null;
                String msg_body = null;
                if (bundle != null){
                    try{

                        boolean delete= false;
                        Object[] pdus = (Object[]) bundle.get("pdus");
                        msgs = new SmsMessage[pdus.length];
                        for(int k=0; k<msgs.length; k++){
                            msgs[k] = SmsMessage.createFromPdu((byte[])pdus[k]);
                            msg_from = msgs[k].getOriginatingAddress();
                            System.out.println(msg_from);
                            String msgBody = msgs[k].getMessageBody();
                            msg_body = msgBody;


                        }

                    }catch(Exception e){
                        System.out.println(e.getMessage());
                    }
                }
            } catch (Exception e) {
                Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
    }

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

https://stackoverflow.com/questions/31326771

复制
相关文章

相似问题

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