Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio:按特定号码删除发送和接收的短信_Java_Android_Sms - Fatal编程技术网

Java Android Studio:按特定号码删除发送和接收的短信

Java Android Studio:按特定号码删除发送和接收的短信,java,android,sms,Java,Android,Sms,我想知道如何删除发送和接收的短信由一个特定的号码。我的应用程序正在通过其他设备与GSM模块连接,并发送和接收短信。我想删除这些短信。下面是我的代码: @Override public void onReceive(Context context, Intent intent) { if (Objects.equals(intent.getAction(), SMS_RECEIVED)) { String smsSender = "";

我想知道如何删除发送和接收的短信由一个特定的号码。我的应用程序正在通过其他设备与GSM模块连接,并发送和接收短信。我想删除这些短信。下面是我的代码:

@Override
    public void onReceive(Context context, Intent intent) {
        if (Objects.equals(intent.getAction(), SMS_RECEIVED)) {
            String smsSender = "";
            String smsBody = "";
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                StringBuilder smsBodyBuilder = new StringBuilder();
                for (SmsMessage smsMessage : Telephony.Sms.Intents.getMessagesFromIntent(intent)) {
                    smsSender = smsMessage.getDisplayOriginatingAddress();
                    smsBodyBuilder.append(smsMessage.getMessageBody());
                }
                smsBody = smsBodyBuilder.toString();
            } else {
                Bundle smsBundle = intent.getExtras();
                if (smsBundle != null) {
                    Object[] pdus = (Object[]) smsBundle.get("pdus");
                    if (pdus == null) {
                        // Display some error to the user
                        return;
                    }
                    SmsMessage[] messages = new SmsMessage[pdus.length];
                    StringBuilder smsBodyBuilder = new StringBuilder();
                    for (int i = 0; i < messages.length; i++) {
                        messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
                        smsBodyBuilder.append(messages[i].getMessageBody());
                    }
                    smsBody = smsBodyBuilder.toString();
                    smsSender = messages[0].getOriginatingAddress();
                }
            }

            if (smsSender != null) {
                if (smsSender.equals(serviceProviderNumber) && smsBody.startsWith(serviceProviderSmsCondition)) {
                    this.pdCanceller.removeCallbacks(this.progressRunnable);
                    this.message = smsBody;
                    context.unregisterReceiver(broadcastReceiver);
                    progressDialog.cancel();
                    SmsReceiverDialog smsReceiverDialog = new SmsReceiverDialog(this.activity, this.context, this.message);

                    checkCommand(smsBody, smsReceiverDialog); // call correctly function from list
                    context.getContentResolver().delete(Uri.parse("content://sms/"), "address=?", new String[]{smsSender});
                }
            }
        }
    }
@覆盖
公共void onReceive(上下文、意图){
if(Objects.equals(intent.getAction(),收到SMS_)){
字符串smsSender=“”;
字符串smsBody=“”;
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.KITKAT){
StringBuilder smsBodyBuilder=新StringBuilder();
for(SmsMessage SmsMessage:Telephony.Sms.Intents.getMessagesFromIntent(intent)){
smsSender=smsMessage.getDisplayOriginatingAddress();
追加(smsMessage.getMessageBody());
}
smsBody=smsBodyBuilder.toString();
}否则{
Bundle smsBundle=intent.getExtras();
if(smsBundle!=null){
Object[]pdus=(Object[])smsBundle.get(“pdus”);
如果(PDU==null){
//向用户显示一些错误
返回;
}
SmsMessage[]messages=新SmsMessage[pdus.length];
StringBuilder smsBodyBuilder=新StringBuilder();
for(int i=0;i
源代码正在捕获SMS消息。我对where子句有问题。删除短信不起作用。

将“Maksim Dmitriev”的答案归功于

请考虑您不能删除Android 4.4设备上的SMS消息。 此外,该系统现在只允许默认应用程序向提供商写入消息数据,尽管其他应用程序可以随时读取


如果您尝试,则不会引发异常;不会删除任何内容。

是的,我知道我无法删除KitKat上的短信。我的minSDK是22,Android 4.4不是我的目标。总而言之,我不能在任何版本的Android上删除短信?