判断当前app是不是default SMS app
来源:互联网 发布:新店能开淘宝直播吗 编辑:程序博客网 时间:2024/06/05 20:21
android 4.4的改动很大,其中改动最大的可能就是短信机制
google出于安全和隐私考虑做了如下修改
①非default SMS app可以接收短信到达的广播,但是不能处理 ②非default SMS app可以读取短信数据库,但是不能对其进行增删操作。 ③下一步有可能会限制非default SMS app连读取短信数据库也不让了 ④如果现存的短信类App不做改造,运行在Android 4.4也不会Crash,但是写入短信数据库数据时会失败。
默 认短信
在手机设置里多了一项设置----默认短信应用,可以选择系统自带短信应用,可以选择第三方短信应用。默认短信应用唯一,即如果设置第三方应用为default SMS app,那么系统自带的短信应用就失去增删SMS数据库的权限
那么如何判断当前app是不是default SMS app?如何设置default SMS app?
一、判断当前app是不是default SMS app 很幸运google为我们提供了Telephony.Sms.getDefaultSmsPackage() ;获取当前Default SMS app的包名。那么在我们的app中可以进行一下判断了,如果我们的app是default SMS app没问题;如果我们的app不是default SMS app那么我们就要提醒用户应该把我们的app设置为default SMS app 代码如下:
@SuppressLint("NewApi") private void isDefaultSMS() { final String myPackageName = getPackageName(); if (!Telephony.Sms.getDefaultSmsPackage(this).equals(getPackageName())) { Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName); startActivity(intent); } }
二、设置default SMS app ①可以提醒用户到手机设置-->更多-->默认短信应用,手动设置 这么干用户体验不太好,要用户手动点这点那,而且用户可能到手机设置里找不到那项设置,那么下面的方法就是一个可行的方案了。 ②代码里通过打开Activity设置:如上面的代码段
0 0
- 判断当前app是不是default SMS app
- 判断App是不是第一次启动
- 判断是不是第一次进入app
- iOS---判断是不是第一次启动APP
- 判断当前app的版本
- Android判断app当前是否联网
- 判断当前APP处于前台或者后台
- 用于判断app是不是第一次安装的工具类
- 判断app是不是只能32bit运行方法
- 判断当前时间是不是月末
- 判断是不是当前类对象
- 判断当前界面是不是桌面
- 判断App是否是在当前版本下首次运行
- 判断当前所用的APP是否在前台还是后台
- iOS开发 判断当前APP版本和升级
- 如何判断当前 app 是否在前台运行。
- Android 判断当前App 是在前台还是在后台
- Android之判断当前指定App是否在前台
- iOS开发 - 控制在生命周期内只运行一次
- Android gdb 调试
- con
- Java中的两种多线程实现方式
- TexturePacker纹理打包打方法及技巧
- 判断当前app是不是default SMS app
- Android之WebView详解
- FastJson处理json数据时遇到一个问题
- 尾递归与Continuation(Haskell描述)未完成
- Sybase bcp命令详解
- Cocos2d-x内存管理之autorelease,addChild和removeFromParent
- [ JS 进阶 ] 基本类型 引用类型 简单赋值 对象引用
- MAC 安装Redis
- Java中String和StringBuffer,StringBuilder的区别小结