如果尝试,不会引发任何异常;什么都不会被删除.我刚刚在两个仿真器上进行了测试. 如何以编程方式发送SMS消息 I want to delete some certain SMS automatically in my Android application. Therefore I have a method which does exactly what I want it to do. However, it only works if I deploy the application directly to my phone from Eclipse. Then it deletes incoming SMS. However, it does not work if the application is downloaded from the market. But there is also no error. Does anybody know how I can solve this or does this only work on rooted devices?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()); }} 解决方案 Actually, the code in my post is 100% correct. The problem was that Android needs some time to store the SMS upon receiving it. So the solution is to just add a handler and delay the delete request for 1 or 2 seconds.This actually solved the whole issue.EDIT (thanks to Maksim Dmitriev):Please consider that you can't delete SMS messages on devices with Android 4.4.http://developer.android.com/about/versions/kitkat.htmlNo exception will be thrown if you try; nothing will be deleted. I have just tested it on two emulators.How to send SMS messages programmatically 这篇关于以编程方式删除Android SMS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-24 16:59