android - 在 Android 中通过 MMS/SMS 监听器区分 MMS 和 SMS

标签 android sms mms

在彩信进入收件箱之前,是否有任何方法可以通过使用彩信/短信监听器来区分彩信和短信?

最佳答案

MMS 消息的第一个指示符是具有 MIME 类型“application/vnd.wap.mms-message”的 WAP 推送,因此您可以为“android.provider.Telephony.WAP_PUSH_RECEIVED”注册一个接收器:

    <receiver android:name=".SomeReceiverName"
        android:permission="android.permission.BROADCAST_WAP_PUSH">
        <intent-filter>
            <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" />
            <data android:mimeType="application/vnd.wap.mms-message" />
        </intent-filter>
    </receiver>

要确定它是否是收到的彩信,您必须打开 PDU:s 并提取 X-Mms-Message-Type,它应该是 m -notification-ind(根据 WAP 209 )。您还可以选择 X-Mms-Transaction-ID,如果您想稍后将它们链接起来,人们认为应该将其存储在消息提供程序的 Telephony.Mms.TRANSACTION_ID 列中。

关于android - 在 Android 中通过 MMS/SMS 监听器区分 MMS 和 SMS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741378/

相关文章:

java - 如何使用静态方法获取短信

android -/res/xml/mms_config.xml 位于哪里?

android - 如何在应用程序为后台 FCM 时检索通知消息 intent.getExtras()

android - 终结器抛出的未捕获异常 java.lang.IllegalStateException : Binder has been finalized

android - 隐藏启动画面的操作栏

android - Corona SDK - 按钮和角色 Sprite 动画没有显示在我的手机上,但在模拟器中很好

java - 在等待接收短信时制作进度对话框

java - 安卓短信上下文菜单

linux - 从 SMIL 文件中提取 jpeg

android - 如何获取 MMS id Android 应用程序