判断当前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
原创粉丝点击