首页 > 解决方案 > 自定义信使应用程序不会在所需的提供程序中存储任何彩信内容(android 10)

问题描述

当自定义应用程序设置为默认消息应用程序时,构建自定义消息应用程序并且 MMS 消息不会存储在提供程序(即,telephony.mms.inbox、mms.part 等)中。关于在使用不同的消息应用程序(即不是开箱即用的设备中内置的应用程序)时如何存储/检索接收到的 MMS 类型消息的任何想法?就好像设备承认它已收到一条消息,但因为它是 MMS 类型,并且默认应用程序未设置为标准的“消息应用程序”,它对接收到的 mms 没有任何作用(但它确实按预期存储 sms -我不知道为什么它对 MMS 不这样做),当我需要它将数据存储到适当的电话提供商中以便以后检索时。

我知道我正在接收它们,因为我可以在我的广播接收器上看到 mms 来自谁(稍微挖掘一下),但是当广播接收器被触发时,与 intent.extras bundle("data") byteArray 关联的数据非常少. 是否有我缺少的设置显示“将彩信存储到所需的电话提供商中”。这甚至可能吗?任何帮助将不胜感激。

private val ACTION_MMS_DELIVERED = "android.provider.Telephony.WAP_PUSH_DELIVER"
private val ACTION_MMS_RECEIVED = "android.provider.Telephony.WAP_PUSH_RECEIVED"
private val MMS_DATA_TYPE = "application/vnd.wap.mms-message"

    override fun onReceive(context: Context?, intent: Intent?) {
    if (intent == null || context == null) return

    if (!checkAction(intent)) return
    if (intent.type !== MMS_DATA_TYPE) {
        val bundle = intent.extras as Bundle

        if (bundle.isEmpty) return

        val buffer = bundle.getByteArray("data") ?: return
        var incomingNumber = String(buffer)

...我可以从“数据”中获取电话号码和内容位置,但是在查询彩信/收件箱时,彩信消息不存在...

非常感谢提前

标签: androidmessagingandroid-10.0mms

解决方案


推荐阅读