You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter短信APP设为默认后Telephony插件无法接收短信求助

解决方案

问题根源

当APP被设置为默认短信应用时,Android系统会将短信广播从SMS_RECEIVED改为SMS_DELIVER发送给默认应用,同时系统要求默认短信APP必须具备处理该广播的接收器。你当前的配置只监听了普通APP的SMS_RECEIVED广播,且可能在默认短信APP的配置中错误引用了未实现的com.example.fluttertest7.SmsReceiver类,导致冲突和报错。

具体修复步骤

  1. 修正接收器广播监听
    修改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>
    
  2. 清理未实现的组件引用
    检查你的AndroidManifest.xml,如果存在引用com.example.fluttertest7.SmsReceiver的配置项(比如在默认短信APP的四项配置中),将其替换为Telephony插件的接收器类名com.shounakmulay.telephony.sms.IncomingSmsReceiver,避免系统查找不存在的类。

  3. 确保默认短信APP配置完整
    确认你配置的四项必填组件都正确指向已存在的实现:

    • 短信内容提供者(Content Provider)
    • 处理SMS_DELIVER的接收器(即上面修改后的配置)
    • 处理WAP_PUSH_DELIVER的接收器(可复用Telephony插件逻辑或参考官方文档配置)
    • 短信发送服务(Service)

完成以上步骤后,重新编译运行APP,即可同时支持设置为默认短信APP和接收短信的功能。

内容的提问来源于stack exchange,提问作者wjlester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:55:19