我想删除我的模拟器中的短信.
但在尝试了所有这些例子之后,它仍然无效.
我甚至没有得到错误.
在我的活动中,我创建了一个BroadcastReceiver,它对传入的SMS作出反应.
然后,当处理完成时,应删除SMS.
但即使我尝试删除所有邮件,我也无法删除任何邮件.
但我可以阅读内容.
也许有人有想法?到目前为止,这是我的代码:
@Override
public void onResume() {
super.onResume();
//registerReceiver(mMessageReceiver,new IntentFilter(Constants.BROADCAST_SMS));
// IntentFilter customIntentFiler = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
//customIntentFiler.setPriority(1000);
registerReceiver(mMessageReceiver,new IntentFilter("android.provider.Telephony.SMS_RECEIVED"));
// registerReceiver(mMessageReceiver,customIntentFiler);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mMessageReceiver);
}
//This is the handler that will manage to process the broadcast intent
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context,Intent intent) {
// Extract data included in the Intent
Bundle bundle = intent.getExtras();
if (bundle != null) {
Log.d("[" + Constants.SERVICE_SMS + "] " + "SMS received");
Object[] pdus = (Object[])bundle.get("pdus");
SmsMessage sms = SmsMessage.createFromPdu((byte[])pdus[0]);
//check if SMS content
Log.d("[" + Constants.SERVICE_SMS + "] " + "SMS data:" + sms.getMessageBody().toString());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String[] smsParts = sms.getMessageBody().toString().split(";");
//ToDo filter logic
}
}
};
private void DeleteSMS(Context context,Intent intent){
try {
// mLogger.logInfo("Deleting SMS from inBox");
Uri uriSms = Uri.parse("content://sms/inBox");
Cursor c = context.getContentResolver().query(uriSms,new String[] { "_id","thread_id","address","person","date","body" },null,null);
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS" + uriSms);
//getContentResolver().delete(Uri.parse("content://sms/1"),null);
if (c != null && c.moveToFirst()) {
do {
long id = c.getLong(0);
long threadId = c.getLong(1);
String address = c.getString(2);
String body = c.getString(5);
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS ID"+ id);
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS threadID" + threadId);
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS address" + address);
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS body" + body);
getContentResolver().delete(Uri.parse("content://sms/inBox/" + id),null);
//getContentResolver().delete(Uri.parse("content://sms/inBox/" + threadId),null);
} while (c.moveToNext());
}
} catch (Exception e) {
// mLogger.logError("Could not delete SMS from inBox: " +
// e.getMessage());
Log.d(Constants.TAG,"[" + Constants.SERVICE_SMS + "] " + "Deleting SMS Failed");
}
}
我的Manifest的开头看起来像这样:
最佳答案
如果您在kitkat之后尝试此应用程序,它将无法正常工作.
原文链接:https://www.f2er.com/java/437183.htmlhttp://android-developers.blogspot.com.tr/2013/10/getting-your-sms-apps-ready-for-kitkat.html?m=1
在游戏商店看到sms拦截器,他们会告诉你同样的事情.