0

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

4

0 回答 0