在Android 4.4.2上更改SMS应用程序默认值

use*_*955 2 java sms android default android-intent

我会更改Android 4.4.2上的默认短信应用程序

我用这个代码:

Intent sendIntent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
sendIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName());
startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?我怎么能要求用我的应用程序更改默认的短信应用程序?

我的接收者:

<receiver android:name="receiver.SMSHandlerReceiver"
     android:permission="android.permission.BROADCAST_SMS" >
      <intent-filter>      
        <action android:name="android.provider.Telephony.SMS_DELIVER" />

            </intent-filter>
        </receiver>
Run Code Online (Sandbox Code Playgroud)

谢谢.

Sam*_*met 6

似乎如果您希望您的应用程序显示在默认的短信应用程序设置中,您必须首先使其符合条件,否则您无法将您的应用程序设置为默认短信应用程序.我有同样的问题,所以我做了那些简单的步骤然后我可以选择我的应用程序默认,在设置和我的代码,我以前不能.

所以:

  • 您必须拥有一个活动,包括带有ACTION_SENDTO("android.intent.action.SENDTO")的意图过滤器以及模式短信,smsto,mms和mmsto.在清单文件中执行此操作.我做的是用这些参数创建一个我不会使用的空活动.

  • 通过使用ACTION_RESPOND_VIA_MESSAGE("android.intent.action.RESPOND_VIA_MESSAGE")以及模式,短信,smsto,mms和mmsto创建包含意图过滤器的空服务来执行相同操作.此服务还必须具有SEND_RESPOND_VIA_MESSAGE权限.您必须在清单中添加所有必需的权限.

  • 使用MIME类型application/vnd.wap.mms-message创建一个包含带有WAP_PUSH_DELIVER_ACTION("android.provider.Telephony.WAP_PUSH_DELIVER")的intent过滤器的空BroadcastReceiver.广播接收器还必须具有BROADCAST_WAP_PUSH权限.您必须在清单中添加所有必需的权限.

  • 使用SMS_DELIVER_ACTION("android.provider.Telephony.SMS_DELIVER")创建一个包含intent过滤器的空BroadcastReceiver.广播接收器还必须要求BROADCAST_SMS权限.您必须在清单中添加所有必需的权限.

设置所有这些参数而不丢失参数非常重要.完成所有这些步骤后,您的应用程序将符合条件,然后您可以将其设置为默认的短信应用程序,将创建的类留空,并坚持使用旧的做法.目标只是将您的应用程序设置为默认值,因此它将像以前一样完全不受影响,无需修改代码.

  • Aynen,mühendisruhuvar bizde napalim = Dkafaçalisiyorkullanmakgerek. (2认同)

Com*_*are 5

我会更改Android 4.4.2上的默认短信应用程序

您无法更改默认的SMS应用程序.但是,您可以要求用户使用更改默认的SMS应用程序Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT.有关Android 4.4中SMS更改的官方博客文章对此进行了介绍.