当前位置: 首页 > 知识库问答 >
问题:

在Android4.4中发送彩信

祁乐邦
2023-03-14

我正在尝试仅从我的应用程序发送彩信。在android开发者教程的帮助下,我把它变成了默认的消息应用(http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html).

我的清单:

BroadcastReceiver监听传入的SMS消息:

   <receiver android:name="com.test.SmsReceiver"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_DELIVER" />
        </intent-filter>
    </receiver>

监听传入彩信的BroadcastRecencer

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

从手机发送消息的服务快速响应

<service android:name="com.test.HeadlessSmsSendService"
        android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>
    </service>

允许用户发送新短信/彩信的活动:

 <activity android:name="com.test.NewMmsActivity"
        android:configChanges="keyboard|keyboardHidden|locale|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <action android:name="android.intent.action.SENDTO" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="sms" />
            <data android:scheme="smsto" />
            <data android:scheme="mms" />
            <data android:scheme="mmsto" />
        </intent-filter>
    </activity>

但当我尝试在NewMMS活动中发送彩信时,它不起作用,相反,对话框是这样打开的:

代码

  Intent mmsIntent = new Intent(Intent.ACTION_SEND);
  mmsIntent.putExtra("sms_body", "text");
  mmsIntent.putExtra("address", "99999999");
  mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(fileString)));
  mmsIntent.setType("image/jpeg");
  startActivity(mmsIntent);

如果我使用意图。行动意味着什么也没有发生。意图开始时没有任何问题,但什么都没有发生。

我错过了什么?

共有3个答案

拓拔泓
2023-03-14

我找到的发送彩信的最简单方法是android SMMS库,可以在这里找到:https://github.com/klinker41/android-smsmms

对于获取mmsc,代理和端口i使用:

 final Cursor apnCursor = SqliteWrapper.query(mContext, this.mContext.getContentResolver(),
                Uri.withAppendedPath(Telephony.Carriers.CONTENT_URI, "current"), APN_PROJECTION, null, null, null);
        String type = null;
        if (apnCursor.moveToFirst()) {
            do {
                type = apnCursor.getString(3);
                if(type.equals("default,supl,mms") ||
                        type.equals("mms")) {
                    mmsc = apnCursor.getString(0);
                    proxy = apnCursor.getString(1);
                    port = apnCursor.getString(2);
}while (apnCursor.moveToNext());

在if循环中,我检查APN是否有彩信数据,否则我需要去下一个。

相洛华
2023-03-14

我认为问题在于,您试图发送图像和文本数据,但您的类型设置为图像。尝试将其切换为:

mmsIntent.setType("*/*");
田仲卿
2023-03-14

作为默认应用,你的应用程序负责发送彩信,而不是打开另一个应用程序来发送彩信,这就是你的代码所做的。目前,Android不像短信那样有简单的彩信API。此外,它是框架中一个文档非常缺乏的方面,实现它所需的代码和解释量超出了堆栈溢出的范围。欢迎您查看本机应用程序的源代码以获取指导,但请记住,这不是一件小事,因为默认应用程序负责处理彩信所需的一切,包括发送、接收和内容提供商事务。

 类似资料:
  • 本文向大家介绍Twilio 发送彩信,包括了Twilio 发送彩信的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用参数在邮件中添加图片media_url。            

  • 我正在开发应用程序,但我无法发送彩信。我研究了示例代码。无法解决我的问题,希望我选择其他应用程序。我想从自己的应用程序发送彩信,但我不能。如果你能帮忙,我将不胜感激 我不叫这个代码。它想让我选择另一个应用程序。

  • 我已经想好了如何发送和接收短信。要发送SMS消息,我必须调用类的和方法。要接收SMS消息,我必须在文件中注册一个接收方。然后我必须重写的方法。我在下面列出了一些例子。 mainactivity.java AndroidManifest.xml 然而,我想知道你是否可以发送和接收彩信以类似的方式。在做了一些研究之后,博客上提供的许多示例只是将传递给本机消息传递应用程序。我正在尝试发送一个彩信而不离开

  • 编译发送彩信的代码时出现此错误的原因是什么?为什么我不能在Android 4.0及更高版本中阅读APN?

  • 我想在邮政映射中发送路径变量,在邮递员软件中。我选择邮政映射体,然后怎么做?我检查了@RequestParam vs@PathVariable示例,get方法的所有答案,但post方法需要答案。

  • 问题内容: 我正在使用POSIX IPC并根据文档-http://man7.org/linux/man- pages/man3/mq_send.3.html mq_send()方法仅发送char *数据,而mq_recv()仅接收字符数据。但是,我想将自定义结构发送到我的味精队列,并且在接收端,我想获取该结构。 样本结构: 那么,有谁知道如何用C语言来实现这一目标? 问题答案: 您只需要传递该结构