龙渊幻想-异世界冒险活动站

龙渊幻想-异世界冒险活动站

如何将我的应用程序设置为默认的短信应用?

为了使您的应用程序有资格被选为默认的消息应用程序(就系统而言),您的清单必须列出那篇博客文章中描述的每个组件的四个部分,无论这些组件的类实际上是否存在和功能是否正常。类名可以是任何有效的名称,但每个组件的其余部分应该与所示的几乎完全一样。

...

android:name=".SmsReceiver"

android:permission="android.permission.BROADCAST_SMS">

android:name=".MmsReceiver"

android:permission="android.permission.BROADCAST_WAP_PUSH">

android:name=".HeadlessSmsSendService"

android:exported="true"

android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">

由于系统只检查应用程序清单来确定它是否可以充当默认的消息应用程序,因此您实际上不需要这些类中的任何一个,尽管您可能需要禁止某些警告/错误或提供存根类来使您的IDE满意。

显然,如果您的应用程序要充当用户的默认消息客户端,则应完全实现所有指定的组件。但是,不完整的实现肯定是有用的;例如,在学习和测试期间,或在仅需要部分访问权限的应用程序中,例如消息备份和还原应用程序。

如果您确实打算执行任何SMS / MMS相关任务,则还需要相应的权限。虽然系统在确定合格的默认应用程序候选者时似乎不会检查这些权限,但以下权限对其相应操作是必需的:

如果在系统尝试将传入的短信传递到清单注册的接收器时,缺少RECEIVE_SMS权限,则会抛出SecurityException异常,尽管有些权限可能很容易被忽略。请务必检查日志,即使没有明显的崩溃,如果您观察到意外行为。