关于android4.4及以上版本无法恢复还原短信的问题记录与解决
来源:互联网 发布:西安软件培训班 编辑:程序博客网 时间:2024/05/08 01:38
首先,在4.4以上和5.0以下可以利用权限管理功能(Application Operations)也就是来默认开启写短信的权限,但是坑爹的问题又来了,这个功能被谷歌给隐藏了,因此只能使用反射来搞定,具体做法如下:
一、检查写入短信权限是否已开启,因为有的国产手机,比如魅族,由于它们定制过系统,所以很有可能已经默认开启这个权限了。反射调用AppOpsManager类里的函数 int checkOp(int op, int uid, String packageName),其中op为15就是代表短信写入权限,代码如下:
二、上述checkMode()方法,返回 0 就代表有权限,1代表没有权限,-1代表函数出错了。此时如果返回0,表示没有开启,同样反射调用setMode函数,方法如下:
至此,在4.4以上以及5.0以下的就又可以愉快的恢复短信,写入短信到短信数据库了,细心的朋友可以注意到了,这个是5.0以下能用,没错,非常不幸,在5.0以上这种方法又行不通了(此刻内心早已经把谷歌祖宗八代都默默问候了下),没办法,继续折腾,最后发现在5.0以上只能通过弹框来让用户选择默认短信应用,临时的设置自己的应用为Default SMS app,临时获取一次写入短信数据库数据能力,等短信恢复完成再改回原来的应用为Default SMS app。,就是类似这种:
做法如下:
1、获取默认App的包名并保存。
2、让用户修改你的app为Default SMS app。
3、恢复完短信,再让用户修改回Default SMS app,使用第一步保存的包名。
接下来,要将自己的应用设置为默认短信应用必须按照下面的步骤来,一样都不能少,不然成功不了,操作如下:
1、首先在清单文件里做如下配置(一个都不能少):
2、然后按照清单文件里的新建对应的类,类里面可以什么都不用写,如下图:
至此,写入短信到短信数据库,恢复短信的功能就完成了,有需要的人拿去吧!
- 关于android4.4及以上版本无法恢复还原短信的问题记录与解决
- 关于android4.4及以上版本无法恢复还原短信的问题记录与解决
- 关于Android4.4以上版本的外置存储器路径问题
- Android4.0以上版本OptionsMenu无法显示图标的问题
- Android4.0以上版本OptionsMenu无法显示图标的问题
- 关于android4.1版本以上不支持支付宝的问题
- 关于note2等(Android4.1版本)以上无法启动支付宝的问题"java.security.spec.InvalidKeySpecException"
- 关于note2等(Android4.1版本)以上无法启动支付宝的问题"java.security.spec.InvalidKeySpecException"
- android4.4以上版本蓝牙连接问题
- 如何解决在android4.4系统中无法正常恢复短信
- android4.0以上应用横屏下解锁恢复的问题
- 关于Android7.0及以上版本FileUriExposedException的问题
- 解决Qt5.2及以上版本无法连接64位mysql问题
- AMFPHP1.4与PHP5.3及以上版本不兼容问题的解决
- 关于Android4.4及以下版本,TextView中使用矢量图时报错的问题
- android4.4以上,从相册中获取图片出错,图片无法裁剪的问题
- 关于Android4.4及以上状态栏渲染那点事
- 解决android4.4以上获取不到图片路径问题
- C++模板函数,模板类
- 四月英语——跨越
- 到底买不买(20)
- Oracle之组成
- Centos上Apache重启,mysql重启, nginx 重启方法
- 关于android4.4及以上版本无法恢复还原短信的问题记录与解决
- 51nod_1265 四点共面
- Emgucv常用到的数据结构
- python3.5中pdfkit的详细配置与使用
- JDBC的PreparedStatement用法
- vue.js 过渡效果之css过渡
- springboot--支付宝条码支付的实现
- AngularJS 1.x入门·简介
- 特征描述子(feature descriptor) —— HOG(方向梯度直方图)