在我们的应用程序中,有一个以编程方式删除 SMS 的功能。应用程序目标 SDK 版本为 26。我已将默认 SMS 应用程序更改为设备上可用的默认 SMS 应用程序。我已经尝试了下面的代码。
要求:需要删除所有短信和彩信的代码
第一:
public boolean deleteSms() {
Cursor c = getApplicationContext().getContentResolver().query(Uri.parse("content://sms/"), new String[]{"_id", "thread_id", "address", "person", "date", "body"}, null, null, null);
try {
while (c.moveToNext()) {
int id = c.getInt(0);
String address = c.getString(2);
this.getContentResolver().delete(
Uri.parse("content://sms/" + id), null, null);
isSmsDeleted = true;
}
} catch (Exception ex) {
isSmsDeleted = false;
}
return isSmsDeleted;
}
我尝试了另一个功能
private int deleteSms() {
try {
ContentResolver localContentResolver = context.getContentResolver();
Uri localUri = Uri.parse("content://sms");
return localContentResolver.delete(localUri, null, null);
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
}
return 0;
}
我的清单许可是
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
当我调试上面的代码时, return localContentResolver.delete(localUri, null, null);
它返回 0。这两个功能都不起作用
测试设备:Google Pixel 2Xl 8.1 版和 MIUI Redmi 5 7.1.2 版