我是靠谱客的博主 清爽电灯胆,最近开发中收集的这篇文章主要介绍Android4.4以上系统选择将第三方短信应用设置为默认短信应用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  由于4.4以上系统第三方应用对短信无法操作,目前网上采用的做法都是将第三方应用设置为默认应用,但有时会经常无法弹出选择是否设置为默认应用的系统弹框,根据网上查找的一些原因是因为设置的权限以及满足短信应用的service,broadCastRecover.Activity没有写全,这些类不一定会用,但一定需要有

弹出设置默认框的代码:

             final String myPackageName = getPackageName();
             if
             (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName))
             {
             Intent intent =
             new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
             intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
             myPackageName);
             startActivity(intent);
             Log.d("liueg", "11111111111");
             }

创建一个Activity ,在Manifest.xml中设置

 <activity
            android:name=".SmsActivity"
            android:label="@string/title_activity_sms" >
           <intent-filter>  
                <action android:name="android.intent.action.SEND" />                  
                <action android:name="android.intent.action.SENDTO" />  
                <category android:name="android.intent.category.DEFAULT" />  
                <category android:name="android.intent.category.BROWSABLE" />  
                <data android:scheme="sms" />  
                <data android:scheme="smsto" />  
                <data android:scheme="mms" />  
                <data android:scheme="mmsto" />  
            </intent-filter>  
        </activity>

创建一个service

      <service
            android:name="com.liueg.demo.SmsService"
            android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"  
                 android:exported="true">
            <intent-filter >
                <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />  
                <category android:name="android.intent.category.DEFAULT" />  
                <data android:scheme="sms" />  
                <data android:scheme="smsto" />  
                <data android:scheme="mms" />  
                <data android:scheme="mmsto" />  
            </intent-filter>
        </service>

创建两个广播

       <receiver
            android:name="com.liueg.demo.SmsBroadCastRecover"
             android:permission="android.permission.BROADCAST_WAP_PUSH">
            <intent-filter >
                <action android:name="android.provider.Telephony.WAP_PUSH_DELIVER"/>
                <data android:mimeType="application/vnd.wap.mms-message" />
            </intent-filter>
        </receiver>
       
        <receiver
            android:name="com.liueg.demo.SmsRecover"
            android:permission="android.permission.BROADCAST_SMS">
            <intent-filter >
                 <action android:name="android.provider.Telephony.SMS_DELIVER" />
            </intent-filter>
        </receiver>

满足这些,就可以弹出设置默认短信弹出框


最后

以上就是清爽电灯胆为你收集整理的Android4.4以上系统选择将第三方短信应用设置为默认短信应用方法的全部内容,希望文章能够帮你解决Android4.4以上系统选择将第三方短信应用设置为默认短信应用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部