Flutter短信APP设为默认后Telephony插件无法接收短信求助
解决方案
问题根源
当APP被设置为默认短信应用时,Android系统会将短信广播从SMS_RECEIVED改为SMS_DELIVER发送给默认应用,同时系统要求默认短信APP必须具备处理该广播的接收器。你当前的配置只监听了普通APP的SMS_RECEIVED广播,且可能在默认短信APP的配置中错误引用了未实现的com.example.fluttertest7.SmsReceiver类,导致冲突和报错。
具体修复步骤
修正接收器广播监听
修改Telephony插件的接收器配置,添加默认短信APP所需的SMS_DELIVER广播监听,确保同时兼容普通和默认短信APP的场景:<receiver android:name="com.shounakmulay.telephony.sms.IncomingSmsReceiver" android:permission="android.permission.BROADCAST_SMS" android:exported="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED"/> <!-- 添加默认短信APP专属广播 --> <action android:name="android.provider.Telephony.SMS_DELIVER"/> </intent-filter> </receiver>清理未实现的组件引用
检查你的AndroidManifest.xml,如果存在引用com.example.fluttertest7.SmsReceiver的配置项(比如在默认短信APP的四项配置中),将其替换为Telephony插件的接收器类名com.shounakmulay.telephony.sms.IncomingSmsReceiver,避免系统查找不存在的类。确保默认短信APP配置完整
确认你配置的四项必填组件都正确指向已存在的实现:- 短信内容提供者(Content Provider)
- 处理
SMS_DELIVER的接收器(即上面修改后的配置) - 处理
WAP_PUSH_DELIVER的接收器(可复用Telephony插件逻辑或参考官方文档配置) - 短信发送服务(Service)
完成以上步骤后,重新编译运行APP,即可同时支持设置为默认短信APP和接收短信的功能。
内容的提问来源于stack exchange,提问作者wjlester
相关产品推荐
相关产品推荐

