android删除短信的处理
16lz
2021-01-26
android的很多功能都是需要权限才能操作,还是有很多功能我们是可以直接操作的,只需要在配置文件中注明权限就行了,可是有些虽然注明了权限,但是还是会提示说你没权限。比如删除短信、让手机进入休眠状态(gotoSleep)。下面我就介绍一下我是如何删除一条属于黑名单中的短信:
1、获取你想要删除的短信的线程ID(因为我想删除最近收到的一条短信,所以我只需按时间进行倒序,然后获取第一条短信的线程ID就行了)
2、删除短信
这能通过这种方式删除短信,如果你想通过其他条件删除的话,那么就会提示你不够权限删除。
但是这种方式只是删除收信箱中的短信,android机上的通知栏还是会照样的提示你有短信到来,那就只能再清楚掉通知栏上的短信提示了,估计还是无法做到完全无任何反应。顺序总是:系统先操作,然后你再删掉,这样的话,肯定个会在界面上闪一下的,让人觉得很怪异。。
1、获取你想要删除的短信的线程ID(因为我想删除最近收到的一条短信,所以我只需按时间进行倒序,然后获取第一条短信的线程ID就行了)
private long getThreadId() { long threadId = 0; String SMS_READ_COLUMN = "read"; String WHERE_CONDITION = SMS_READ_COLUMN + " = 0"; String SORT_ORDER = "date DESC"; int count = 0; Cursor cursor = mContext.getContentResolver().query( Uri.parse("content://sms/inbox"), new String[] { "_id", "thread_id", "address", "person", "date", "body" }, WHERE_CONDITION, null, SORT_ORDER); if (cursor != null) { try { count = cursor.getCount(); if (count > 0) { cursor.moveToFirst(); threadId = cursor.getLong(1); } } finally { cursor.close(); } } Log.i("threadId", String.valueOf(threadId)); return threadId; }
2、删除短信
long id = getThreadId(); Uri mUri=Uri.parse("content://sms/conversations/" + id); mContext.getContentResolver().delete(mUri, null, null);
这能通过这种方式删除短信,如果你想通过其他条件删除的话,那么就会提示你不够权限删除。
但是这种方式只是删除收信箱中的短信,android机上的通知栏还是会照样的提示你有短信到来,那就只能再清楚掉通知栏上的短信提示了,估计还是无法做到完全无任何反应。顺序总是:系统先操作,然后你再删掉,这样的话,肯定个会在界面上闪一下的,让人觉得很怪异。。
更多相关文章
- 《Android/OPhone开发完全讲义》连载(8):收到短信了,我该做点什么?
- Android(安卓)6.0新特性之WebView不能适配屏幕解决方案
- Android各大手机系统打开权限管理页面
- 12个被滥用的Android应用程序权限
- 关于Android(安卓)4.4 后没有WRITE_SMS权限以及指定Android(安卓
- Android自定义GridView之仿支付宝首页可拖动、可删除的九宫格
- BlackHole开发日志-尝试基于Android的DNS服务器
- Enhanced Security Solution in Android
- Android踩坑日记:Android动态权限分析和解决方案