Java Android Studio:按特定号码删除发送和接收的短信
我想知道如何删除发送和接收的短信由一个特定的号码。我的应用程序正在通过其他设备与GSM模块连接,并发送和接收短信。我想删除这些短信。下面是我的代码: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 = "";
@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上删除短信?