Android 4.4.2上的java Change SMS应用程序默认设置
我会更改安卓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);
我怎样才能解决这个问题?我怎样才能要求用我的应用程序更改默认短信应用程序
我的接收人:
<receiver 安卓:name="receiver.SMSHandlerReceiver"
安卓:permission="安卓.permission.BROADCAST_SMS" >
<intent-filter>
<action 安卓:name="安卓.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
多谢各位
# 1 楼答案
您无法更改默认的SMS应用程序。但是,您可以使用
Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT
请求用户更改默认的SMS应用程序。这将在the official blog post on the SMS changes in Android 4.4中介绍# 2 楼答案
看来,如果你想让你的应用出现在默认的短信应用设置中,你必须先让它符合条件,否则你不能将你的应用设置为默认短信应用。我也有同样的问题,所以我做了这些简单的步骤,然后我可以在设置和代码中选择我的应用程序作为默认值,这是我以前无法做到的
所以:
你必须有一个包含意向过滤器的活动,该过滤器带有ACTION_SENDTO(“android.intent.ACTION.SENDTO”)和模式sms、smsto、mms和mmsto。在你的清单文件中做。我所做的是创建一个空的活动,我不会使用这些参数
同样,通过创建一个空服务,包括一个意向过滤器,其中包含ACTION_RESPOND_VIA_MESSAGE(“android.intent.ACTION.RESPOND_VIA_MESSAGE”),以及Schema、sms、smsto、mms和mmsto。此服务还必须具有“发送\回复\通过\消息”权限。您必须在清单中添加所有必需的权限
使用MIME类型的应用程序/vnd创建一个空的BroadcastReceiver,包括一个带有WAP_PUSH_DELIVER_操作(“android.provider.Telephony.WAP_PUSH_DELIVER”)的意向过滤器。wap。彩信。广播接收器还必须获得广播WAP PUSH许可。您必须在清单中添加所有必需的权限
创建一个空的BroadcastReceiver,包括一个带有SMS_DELIVER_操作(“android.provider.Telephony.SMS_DELIVER”)的意向过滤器。广播接收器还必须获得广播短信许可。您必须在清单中添加所有必需的权限
重要的是要设置所有这些参数,而不要遗漏一个。一旦你完成了所有这些步骤,你的应用程序将符合条件,然后你可以将其设置为默认短信应用程序,将创建的类保留为空,并坚持使用旧的操作方式。目标是简单地将你的应用程序设置为默认,这样它就可以像以前一样完全功能化,无需修改代码