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" />
答案 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意图侦听传入的消息。此外,系统现在只允许默认应用程序将消息数据写入提供程序,但其他应用程序可以随时读取。非用户默认的应用仍然可以发送消息 - 系统会代表应用处理将这些消息写入提供商,以便用户可以在默认应用中看到它们。