Android删除已发送短信

时间:2015-03-12 07:54:37

标签: android sms

 int rsRem = cntentRes.delete(Uri.parse("content://sms/"), "address=\"9xxxx9x9xx9x9\"", null);

上面的代码行不起作用 在rsRem中,在行执行后接收0(零)...

我正在使用Samsung core II来测试拥有此代码的应用 我正在使用以下权限

<uses-permission android:name="android.permission.READ_SMS"/>
    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_USER_DICTIONARY"/>
    <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />

2 个答案:

答案 0 :(得分:2)

请注意,您无法在使用Android 4.4的设备上删除短信。

  
    

此外,系统现在只允许默认应用程序将消息数据写入提供程序,但其他应用程序可以随时阅读。

  

http://developer.android.com/about/versions/kitkat.html

如果你尝试,不会抛出任何异常;

来源&gt;&gt; https://stackoverflow.com/a/19998937/519718

答案 1 :(得分:0)

如您所知,您无法在Android 4.4或更高版本的设备上删除短信。 根据{{​​3}}:

  

随着新的提供者和API,Android 4.4引入了新的语义,用于接收消息和写入提供者。收到消息后,系统会使用新的SMS_DELIVER意图将其直接路由到用户的默认消息传递应用程序。其他应用仍然可以使用SMS_RECEIVED意图侦听传入的消息。此外,系统现在只允许默认应用程序将消息数据写入提供程序,但其他应用程序可以随时读取。非用户默认的应用仍然可以发送消息 - 系统会代表应用处理将这些消息写入提供商,以便用户可以在默认应用中看到它们。