【问题标题】:delete incoming message from inbox in android从android的收件箱中删除传入的消息
【发布时间】:2015-06-21 01:16:19
【问题描述】:

我想从收件箱中删除传入的消息,只想在我的应用中接收 我正在尝试这段代码 但它不起作用,我正在使用棒棒糖

public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
       if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
            Bundle bundle = intent.getExtras();           //---get the SMS message passed in---
            SmsMessage[] msgs = null;
            String msg_from = null;
            String msgBody = null;
            if (bundle != null){
                //---retrieve the SMS message received---
                try{
                    Object[] pdus = (Object[]) bundle.get("pdus");
                    msgs = new SmsMessage[pdus.length];
                    for(int i=0; i<msgs.length; i++){
                        msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
                        msg_from = msgs[i].getOriginatingAddress();
                        msgBody = msgs[i].getMessageBody();
                    }
                }catch(Exception e){
                            Log.d("Exception caught", e.getMessage());
                }

                Toast.makeText(context, "Number : " +msg_from + "\n" + "Message : "+  msgBody , Toast.LENGTH_LONG).show();

                clearAbortBroadcast();
                this.abortBroadcast();

        }

    }
  }

}

【问题讨论】:

    标签: android broadcastreceiver


    【解决方案1】:

    首先,确保在清单文件中为您的接收器设置尽可能高的优先级。

    现在,在 KitKat 和更新的 Android 版本上,您还必须确保您的应用被选为默认短信应用并正在收听SMS_DELIVER_ACTION。不是SMS_RECEIVED。否则这个won't work:

    在 Android 4.4 上,只有一个应用可以接收新的 SMS_DELIVER_ACTION 意图,当有新的 SMS 消息到达时,系统会广播该意图。 (...) 仅接收 SMS_DELIVER_ACTION 广播的应用程序( 用户指定的默认 SMS 应用程序)能够写入 SMS Provider。

    【讨论】:

    • 我在我的应用中收到短信,但它没有从收件箱中删除
    • 从您发布的代码来看,您没有收到正确的操作。您需要接收SMS_DELIVER_ACTION,但只有当您的应用程序是设备上的默认短信应用程序时,您才能这样做。否则,您只能阅读收到的短信,但无法阻止它们进入收件箱。
    • 请提供任何简单的代码示例?用于设置默认短信应用。
    • 你不能自己设置。这由用户决定哪个是默认设置。
    • 我希望它给出一个对话框“设置为默认短信应用程序?”如果用户说“是”,则它成为默认短信应用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多