Программное удаление Android SMS

Я хочу автоматически удалить некоторые определенные SMS в моем приложении для Android. Поэтому у меня есть метод, который делает именно то, что я хочу. Однако это работает только в том случае, если я развертываю приложение прямо на свой телефон из Eclipse. Затем удаляет входящие смс. Однако не работает, если приложение скачано с маркета. Но ошибки тоже нет. Кто-нибудь знает, как я могу решить эту проблему, или это работает только на устройствах с root-доступом?

public void deleteSMS(Context context, String message, String number) {
    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, 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);

                if (message.equals(body) && address.equals(number)) {
                    mLogger.logInfo("Deleting SMS with id: " + threadId);
                    context.getContentResolver().delete(
                        Uri.parse("content://sms/" + id), null, null);
                }
            } while (c.moveToNext());
        }
    } catch (Exception e) {
        mLogger.logError("Could not delete SMS from inbox: " + e.getMessage());
    }
}
31
задан Cœur 4 April 2017 в 14:53
поделиться