在我们的应用程序中,有一个功能可以通过编程方式删除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