Android彩信介绍

合集下载

手机彩信

手机彩信
1、图文并茂--配有现场图片的体育新闻、有趣的卡通漫画、丰富的贺卡明信片等都是彩信的应用内容。
2、即拍即发--彩信还有一大特色就是与手机摄像头的结合,用户只要拥有带摄像头的彩信手机,就可以随 时随地拍照,并把照片保存到手机,或者作为待机图片或动态屏保,或是通过GPRS发送出去,与亲人、朋友共同 分享快乐动人一刻。
彩信可以传送包括文字、图像、声音、文本、动画等各种多媒体格式的信息;
根据终端支持的不同情况,能够发送或接收一定尺寸大小的彩信,最大支持300k,个别终端支持30k~50k不 等;
随时通过手机到手机、手机到互联、互联到手机等方式进行多媒体信息传送。
业务特点
彩信与原有的普通短信比较,除了基本的文字信息以外,更配有丰富的彩色图片、声音、动画、震动等多媒 体的内容。
3、多种业务形式:彩信有手机到手机,手机到应用,手机到邮箱三种业务形式;
4、超大容量:GSM络的条彩信最大容量可以达到100K,TD络的3G增强彩信最大容量可以达到300K。
业务资费
中国移动彩信资费 1、内点对点彩信、邮箱彩信: 客户发送收取0.3-0.6元/条,接收免费。 2、间点对点彩信: 客户发送0.6元/条,接收免费。 3、国际点对点彩信: (1)中国移动客户在国内发送点对点彩信至中国大陆以外地区运营商客户,每条1.5元,接收彩信免费; (2)中国移动客户漫游至国外发送点对点彩信:按“国际漫游出访统一GPRS资费标准”+“国内现行彩信资 费标准”收取; (3)国际来访客户发送彩信:按0.1元人民币/KB的GPRS流量费计费,不再收其他费用。 4、梦彩信:
手机彩信在技术上也有别于手机短信,它是在GPRS的支持下,以WAP无线应用协议为载体来传送图片、声音 和文字等信息。手机彩信业务可实现即时的手机端到端、手机终端到互联或互联到手机终端的多媒体信息传送。

Android短彩信收发流程(应用层)

Android短彩信收发流程(应用层)

Android短彩信收发流程(应用层)下图为ComposeMessageActivity中confirmSendMessageIfNeeded部分的信息发送流程。

主要以接收者有效性的确认为主,然后转向sendMessage方法进行发送。

下图为ComposeMessageActivity中confirmSendMessageIfNeeded部分的信息发送流程。

主要以接收者有效性的确认为主,然后转向sendMessage方法进行发送。

WorkingMessage.send从下图可以看出,在本方法中,对于不同类型的消息,分别调用不同的方法对其进行处理。

并对彩信进行一些简要的预处理。

短信部分:WorkingMessage.preSendSmsWorker如下图所示,这是短信部分的发送流程。

本方法中所涉及到的东西就比较多了。

由于已经转到了新线程中利用WorkingMessage进行消息的发送,那么原来ComposeMessage中的那个WorkingMessage就可以更新了。

然后确认一下所属的会话是否存在,如果不存在就新建一个。

接着,将接收者序列化,调用sendSmsWorker。

创建一个SmsMessageSender,将消息存入发送队列中(type字段设为6)。

通知SmsReceiver发送。

SmsReceiver则调用SmsReceiverService发送队列中的第一条短信。

在发送之前,还要根据手机卡的不同,将短信内容分成若干块,保证每块的大小不超过该卡的限制。

在分段后的最后一条短信的sentIntent中,设置EXTRA_MESSAGE_SENT_SEND_NEXT为true。

这样当短信发送成功后,会调用SmsReceiverService的handleSmsSent方法,发送队列中的第一条。

然后,对每块都指定一个sentIntent,当发送出去之后,修改其状态。

若需要报告,还会指定一个deliveryIntent,用于消息报告的处理。

多媒体彩信业务介绍

多媒体彩信业务介绍

多媒体彩信业务介绍1. 引言彩信(Multimedia Messaging Service,MMS)是一种支持多媒体内容的短信服务,它允许用户发送包含文本、图片、音频、视频等多种媒体元素的短信,丰富了用户之间的通信方式。

作为一项基于移动互联网的服务,彩信已经成为人们日常生活中分享、交流信息的重要方式之一。

2. 彩信的特点与传统的短信相比,彩信具有以下几个特点:•多媒体支持:彩信可以发送包含图片、音频、视频等多种媒体内容的信息,丰富了信息传递的方式。

•高清晰度:彩信支持发送高清的图片和视频内容,使得用户可以更加直观地展示自己想要表达的信息。

•富文本格式:彩信支持文字的排版和格式设置,用户可以通过设置字号、颜色、字体等样式以及添加表情符号等来丰富信息的表达。

•群发功能:彩信可以同时发送给多个接收者,方便用户进行群发操作,提高了信息传递的效率。

•多种媒体格式支持:彩信支持多种媒体格式的发送和接收,如JPEG、PNG、GIF等图片格式,MP3、WAV等音频格式,MP4、AVI等视频格式。

3. 彩信的应用场景彩信作为一种具有多媒体支持的短信服务,广泛应用于以下几个方面:3.1 企业推广和营销彩信可以作为一种创新的营销手段,帮助企业吸引用户的注意力,提高品牌曝光度。

通过在彩信中插入精美的图片、动画或视频广告,企业可以更好地展示产品特点和优势,同时给予用户更直观的感受,增强用户对品牌的记忆和认知。

3.2 活动通知和邀请彩信可以用于发送活动通知和邀请,帮助组织者快速、直观地传递活动信息。

在彩信中可以插入活动海报、场地地图等相关信息,让接收者更加清楚了解活动内容和参与方式,提高活动的参与度。

3.3 个人生活分享彩信可以用于个人之间的交流和分享。

用户可以通过彩信发送和接收好友的生活照片、旅行视频等内容,使得交流更加生动有趣。

同时,用户还可以利用彩信传递感谢和祝福等信息,增强彼此之间的情感联系。

4. 彩信业务的发展随着移动互联网的快速发展,彩信业务也在不断创新和演进。

移动增值应用开发技术导论第四章彩信MMS篇

移动增值应用开发技术导论第四章彩信MMS篇
递体验。
特点
彩信MMS具有多媒体性、实时性、交互性和个性化等特点。它能够实现多媒体内容的 传递,提供更加丰富的信息内容;同时,彩信MMS具有实时性,能够快速传递信息; 此外,彩信MMS还具有交互性,可以实现用户之间的互动交流;个性化也是彩信MMS
的一大特点,用户可以根据自己的需求定制彩信内容。
彩信MMS的发展历程
确保发送方和接收方使用的编码/解码方式一致,并遵循彩信规
范。
数据格式问题
03
检查彩信内容的数据格式是否正确,如MIME类型、字符集等。
05
彩信MMS的未来展望
5G时代的彩信MMS
5G网络的高速度和低延迟特性 将为彩信MMS带来更快速、更 稳定的传输体验,使得彩信内容
更加丰富、交互性更强。
5G时代的彩信MMS将支持更高 质量的多媒体内容,如高清图片、 视频和音频,为用户提供更加沉
功能模块设计
根据需求分析结果,设计各个功能模块的逻辑和 界面。
数据结构设计
定义系统中的数据结构、数据类型和数据关系, 确保数据的准确性和一致性。
开发实现
开发环境搭建
配置开发所需的软件和工具,确保开发环境的稳定性和安全性。
编码实现
根据系统设计,编写代码实现各个功能模块。
代码审查与测试
进行代码审查和单元测试,确保代码的质量和稳定性。
MIME格式将彩信内容分为多个部分 ,每个部分都有相应的类型标识符, 以便接收方正确解析和显示。
彩信MMS的传输过程
发送方编辑彩信内容,通过手机发送 给SMSC。
接收方收到彩信后,通过手机或终端 设备进行查看和保存。
SMSC将彩信转发给接收方的手机或 终端设备。
如果接收方无法立即查看彩信, SMSC会将彩信存储在服务器上,等 待接收方再次连接时进行传输。

Android手机中国移动彩信APN设置教程

Android手机中国移动彩信APN设置教程

彩信对于手机来说是一项非常重要的功能,但是对于新购买的Android手机都不能正常使用彩信功能,原因是目前销售的Android手机中都没有内置中国网络运行商的APN (Access Point Names)配置文件,因此如需使用上网和彩信的功能都必须自行设置APN。

那么如果需要接受彩信,需要怎样设置呢?
首先在系统界面的情况下点击Menu键,在弹出的进阶菜单中选择最后一项Settings。

选择位于第一项的无线控制(Wirelss controls)。

在新弹出的界面中选择倒数第二项移动网络(Mobile networks).
再点击Access Point Names进入APN设置。

点击Menu键选择新建APN。

在其中填入如下配置信息:
name:mms
apn:cmwap
proxy: 不用填
port:不用填
username:不用填
password:不用填
server:不用填
mmsc:
mms procy:010.000.000.172
mms port:80
mcc:460
mnc:00
apn type: mms /app/xitonggongju/android_93.html
保存应用后,重启即可正常上网。

不过要提醒一点,Android系统为专为互联网设计的手机系统,因此搭载Android系统的手机将有较大的流量,定CMNET套餐会节省很多钱。

androi智能手机彩信问题分析总结

androi智能手机彩信问题分析总结

android彩信问题分析总结彩信简介本文主要介绍android手机上的问题如何定位。

彩信(MMS,Multimedia Messaging Service),也称为多媒体信息服务,通过该功能,可以传送比短信服务稍微大一点的文件,比如可以发送图片,录音等文件给别的用户。

即使我们不经常发彩信,但是平时手机上接收的手机报也是彩信。

彩信要发送比较大的文件,它的传输的方式跟短信不一样,短信的发送在CS域就能完成,而彩信是在PS域来进行的。

既然彩信在PS域上进行,那发送彩信和上网的原理基本是一样的,发送的过程就跟在上网的过程中给别人传文件一样,接收彩信就跟上网过程的下载文件一样。

跟上网一样,发彩信也是要激活PDP(以UMTS来举例,UMTS激活数据业务相当于激活PDP,如果是CDMA建立的是PPP连接),只不过彩信的PDP不能长时间维持,发送完或者接收完彩信就应尽快关闭,避免影响正常的上网。

激活PDP成功后,要保证数据链路是通的,手机和彩信中心才能进行业务数据的交互,因此分析彩信的问题可以从2个大方面入手:一、检查彩信的PDP是否激活;二、查看数据链路是否通畅。

分析步骤检查点一:RIL是否有Data call在RIL层检查彩信的PDP是否有DATA CALL,并且能够成功激活,从这一步就可以检查问题出在RIL层之上还是之下。

如果没有DATA CALL,那么问题就出在RIL之上,继续在framework 找原因;如果有DATA CALL,但是返回错误,那么就得继续在RIL层下面的modem来找原因。

要检查这一步,可以在Radio log搜SETUP_DATA_CALL,如下面成功的激活卡2的cmwap,(注:android的log可以抓radio,main,system的log,比如adb logcat –b radio就是抓radio 的log。

)检查点二:检查是否满足激活数据业务的条件在第一步的检查过程中,如果问题发生的时间点并没有DATA CALL,那么问题应该在framework里没有满足发起DATA CALL。

【Android】Android彩信发送的两种方式+源代码

【Android】Android彩信发送的两种方式+源代码

【Android 】Android 彩信发送的两种⽅式+源代码Android 彩信发送的两种⽅式第⼀种:直接调⽤彩信发送接⼝ 实现代码如下, 看到彩信发送的代码,跟短信发送的代码有很⼤的不同,彩信发送不同于短信发送,调⽤系统的彩信发送会出现发送界⾯。

有朋友就要问了,这样不适合我的需求,我需要实现⾃定义彩信发送,并且不调⽤系统彩信。

第⼆种⽅法将满⾜我们的需求第⼆种:⾃定义彩信发送 ⾃定义彩信发送,⽆需进⼊彩信发送界⾯,需要调⽤系统源码 PDU 实现。

⾸先给出发送代码APNManager.getSimMNC ⽤来设置 彩信Url 和代理端⼝MMSSender.sendMMS 实现彩信的发送APNManager 类源代码Intent intent = new Intent(Intent.ACTION_SEND);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));// uri 为你的附件的uriintent.putExtra("subject", "it's subject"); //彩信的主题intent.putExtra("address", "10086"); //彩信发送⽬的号码intent.putExtra("sms_body", "it's content"); //彩信中⽂字内容intent.putExtra(Intent.EXTRA_TEXT, "it's EXTRA_TEXT");intent.setType("image/*");// 彩信附件类型intent.setClassName("com.android.mms","poseMessageActivity");startActivity(intent);//彩信发送函数public static void sendMMS(final Context context, String number,String subject, String text, String imagePath, String audioPath) {final MMSInfo mmsInfo = new MMSInfo(context, number, subject, text,imagePath, audioPath);final List<String> list = APNManager.getSimMNC (context);new Thread() {@Overridepublic void run() {try {byte [] res = MMSSender.sendMMS (context, list,mmsInfo.getMMSBytes());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}};}.start();}View Codepackage com.rayray.util;import java.util.ArrayList;import java.util.List;import android.content.ContentResolver;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import .Uri;import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.Log;public class APNManager {// 电信彩信中⼼url ,代理,端⼝public static String mmscUrl_ct = "http://mmsc.vnet.mobi";public static String mmsProxy_ct = "10.0.0.200";// 移动彩信中⼼url ,代理,端⼝public static String mmscUrl_cm = "";public static String mmsProxy_cm = "10.0.0.172";// 联通彩信中⼼url ,代理,端⼝public static String mmscUrl_uni = "http://mmsc.vnet.mobi";public static String mmsProxy_uni = "10.0.0.172";private static String TAG = "APNManager";private static final Uri APN_TABLE_URI = Uri.parse("content://telephony/carriers");// 所有的APN 配配置信息位置private static final Uri PREFERRED_APN_URI = Uri.parse("content://telephony/carriers/preferapn");// 当前的APNprivate static String[] projection = { "_id", "apn", "type", "current","proxy", "port" };private static String APN_NET_ID = null ;private static String APN_WAP_ID = null ;public static List<String> getSimMNC(Context context) {TelephonyManager telManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);String imsi = telManager.getSubscriberId();if (imsi != null) {ArrayList<String> list = new ArrayList<String>();if (imsi.startsWith("46000") || imsi.startsWith("46002")) {// 因为移动⽹络编号46000下的IMSI已经⽤完,所以虚拟了⼀个46002编号,134/159号段使⽤了此编号 // 中国移动list.add(mmscUrl_cm);list.add(mmsProxy_cm);} else if (imsi.startsWith("46001")) {// 中国联通list.add(mmscUrl_uni);list.add(mmsProxy_uni);} else if (imsi.startsWith("46003")) {// 中国电信list.add(mmscUrl_ct);list.add(mmsProxy_ct);}shouldChangeApn(context);return list;}return null;}private static boolean shouldChangeApn(final Context context) {final String wapId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn不是wap,则切换⾄wapif (!wapId.equals(apnId)) {APN_NET_ID = apnId;setApn(context, wapId);// 切换apn需要⼀定时间,先让等待2秒try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}return true;}return false;}public static boolean shouldChangeApnBack(final Context context) {// 彩信发送完毕后检查是否需要把接⼊点切换回来if (null != APN_NET_ID) {setApn(context, APN_NET_ID);return true;}return false;}// 切换成NETAPNpublic static boolean ChangeNetApn(final Context context) {final String wapId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn是wap,则切换⾄netif (wapId.equals(apnId)) {APN_NET_ID = getNetApnId(context);setApn(context, APN_NET_ID);// 切换apn需要⼀定时间,先让等待⼏秒,与机⼦性能有关try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Log.d("xml", "setApn");return true;}return true;}// 切换成WAPAPNpublic static boolean ChangeWapApn(final Context context) {final String netId = getWapApnId(context);String apnId = getCurApnId(context);// 若当前apn是net,则切换⾄wapif (netId.equals(apnId)) {APN_WAP_ID = getNetApnId(context);setApn(context, APN_WAP_ID);// 切换apn需要⼀定时间,先让等待⼏秒,与机⼦性能有关try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}Log.d("xml", "setApn");return true;}return true;}// 获取当前APNpublic static String getCurApnId(Context context) {ContentResolver resoler = context.getContentResolver();// String[] projection = new String[] { "_id" };Cursor cur = resoler.query(PREFERRED_APN_URI, projection, null, null, null);String apnId = null;if (cur != null && cur.moveToFirst()) {apnId = cur.getString(cur.getColumnIndex("_id"));}Log.i("xml", "getCurApnId:" + apnId);return apnId;}public static APN getCurApnInfo(final Context context) {ContentResolver resoler = context.getContentResolver();// String[] projection = new String[] { "_id" };Cursor cur = resoler.query(PREFERRED_APN_URI, projection, null, null, null);APN apn = new APN();if (cur != null && cur.moveToFirst()) {apn.id = cur.getString(cur.getColumnIndex("_id"));apn.apn = cur.getString(cur.getColumnIndex("apn"));apn.type = cur.getString(cur.getColumnIndex("type"));}return apn;}public static void setApn(Context context, String id) {ContentResolver resolver = context.getContentResolver();ContentValues values = new ContentValues();values.put("apn_id", id);resolver.update(PREFERRED_APN_URI, values, null, null);Log.d("xml", "setApn");}// 获取WAP APNpublic static String getWapApnId(Context context) {ContentResolver contentResolver = context.getContentResolver();// 查询cmwapAPNCursor cur = contentResolver.query(APN_TABLE_URI, projection,"apn = \'cmwap\' and current = 1", null, null);// wap APN 端⼝不为空if (cur != null && cur.moveToFirst()) {do {String id = cur.getString(cur.getColumnIndex("_id"));String proxy = cur.getString(cur.getColumnIndex("proxy"));if (!TextUtils.isEmpty(proxy)) {Log.i("xml", "getWapApnId" + id);return id;}} while (cur.moveToNext());}return null;}public static String getNetApnId(Context context) {ContentResolver contentResolver = context.getContentResolver();Cursor cur = contentResolver.query(APN_TABLE_URI, projection,"apn = \'cmnet\' and current = 1", null, null);if (cur != null && cur.moveToFirst()) {return cur.getString(cur.getColumnIndex("_id"));}return null;}// 获取所有APNpublic static ArrayList<APN> getAPNList(final Context context) {ContentResolver contentResolver = context.getContentResolver();Cursor cr = contentResolver.query(APN_TABLE_URI, projection, null, null, null);ArrayList<APN> apnList = new ArrayList<APN>();if (cr != null && cr.moveToFirst()) {do {Log.d(TAG,cr.getString(cr.getColumnIndex("_id")) + ";"+ cr.getString(cr.getColumnIndex("apn")) + ";"+ cr.getString(cr.getColumnIndex("type")) + ";"+ cr.getString(cr.getColumnIndex("current"))+ ";"+ cr.getString(cr.getColumnIndex("proxy")));APN apn = new APN();apn.id = cr.getString(cr.getColumnIndex("_id"));apn.apn = cr.getString(cr.getColumnIndex("apn"));apn.type = cr.getString(cr.getColumnIndex("type"));apnList.add(apn);} while (cr.moveToNext());cr.close();}return apnList;}// 获取可⽤的APNpublic static ArrayList<APN> getAvailableAPNList(final Context context) { // current不为空表⽰可以使⽤的APNContentResolver contentResolver = context.getContentResolver();Cursor cr = contentResolver.query(APN_TABLE_URI, projection,"current is not null", null, null);ArrayList<APN> apnList = new ArrayList<APN>();if (cr != null && cr.moveToFirst()) {do {Log.d(TAG,cr.getString(cr.getColumnIndex("_id")) + ";"+ cr.getString(cr.getColumnIndex("apn")) + ";"+ cr.getString(cr.getColumnIndex("type")) + ";"+ cr.getString(cr.getColumnIndex("current"))+ ";"+ cr.getString(cr.getColumnIndex("proxy")));APN apn = new APN();apn.id = cr.getString(cr.getColumnIndex("_id"));apn.apn = cr.getString(cr.getColumnIndex("apn"));apn.type = cr.getString(cr.getColumnIndex("type"));apnList.add(apn);} while (cr.moveToNext());cr.close();}return apnList;}// ⾃定义APN包装类static class APN {String id;String apn;String type;@Overridepublic String toString() {return "id=" + id + ",apn=" + apn + ";type=" + type;}}}MMSSender类源代码View Code//发送类package com.rayray.util;import java.io.DataInputStream;import java.io.IOException;import .SocketException;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpHost;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.params.ConnRoutePNames;import org.apache.http.entity.ByteArrayEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.params.HttpProtocolParams;import org.apache.http.protocol.HTTP;import android.content.Context;import android.util.Log;/*** @author* @version创建时间:2012-2-1 上午09:32:54*/public class MMSSender {private static final String TAG = "MMSSender";// public static String mmscUrl = "";// public static String mmscProxy = "10.0.0.172";public static int mmsProt = 80;private static String HDR_VALUE_ACCEPT_LANGUAGE = "";private static final String HDR_KEY_ACCEPT = "Accept";private static final String HDR_KEY_ACCEPT_LANGUAGE = "Accept-Language";private static final String HDR_VALUE_ACCEPT = "*/*, application/vnd.wap.mms-message, application/vnd.wap.sic";public static byte[] sendMMS(Context context, List<String> list, byte[] pdu)throws IOException {System.out.println("进⼊sendMMS⽅法");// HDR_VALUE_ACCEPT_LANGUAGE = getHttpAcceptLanguage();HDR_VALUE_ACCEPT_LANGUAGE = HTTP.UTF_8;String mmsUrl = (String) list.get(0);String mmsProxy = (String) list.get(1);if (mmsUrl == null) {throw new IllegalArgumentException("URL must not be null.");}HttpClient client = null;try {// Make sure to use a proxy which supports CONNECT.// client = HttpConnector.buileClient(context);HttpHost httpHost = new HttpHost(mmsProxy, mmsProt);HttpParams httpParams = new BasicHttpParams();httpParams.setParameter(ConnRoutePNames.DEFAULT_PROXY, httpHost);HttpConnectionParams.setConnectionTimeout(httpParams, 10000);client = new DefaultHttpClient(httpParams);HttpPost post = new HttpPost(mmsUrl);// mms PUD STARTByteArrayEntity entity = new ByteArrayEntity(pdu);entity.setContentType("application/vnd.wap.mms-message");post.setEntity(entity);post.addHeader(HDR_KEY_ACCEPT, HDR_VALUE_ACCEPT);post.addHeader(HDR_KEY_ACCEPT_LANGUAGE, HDR_VALUE_ACCEPT_LANGUAGE);post.addHeader("user-agent","Mozilla/5.0(Linux;U;Android 2.1-update1;zh-cn;ZTE-C_N600/ZTE-C_N600V1.0.0B02;240*320;CTC/2.0)AppleWebkit/530.17(KHTML,like Gecko) Version/4.0 Mobile Safari/530.17");// mms PUD ENDHttpParams params = client.getParams();HttpProtocolParams.setContentCharset(params, "UTF-8");System.out.println("准备执⾏发送");// PlainSocketFactory localPlainSocketFactory =// PlainSocketFactory.getSocketFactory();HttpResponse response = client.execute(post);System.out.println("执⾏发送结束,等回执。

手机彩信设置

手机彩信设置

手机彩信设置一、什么是彩信?彩信是一种手机短信服务,可以发送包含文本、图片、音频、视频等多媒体内容的信息。

相比普通的短信,彩信可以更富有表现力地传递信息,使通信更加丰富多样。

二、彩信设置的重要性手机彩信设置对于使用彩信功能的用户来说非常重要,正确设置可以确保彩信的正常发送和接收。

同时,正确的彩信设置也能够避免一些彩信发送失败或者接收失败的问题,提高彩信的传输成功率。

三、彩信设置步骤下面将介绍如何在手机上进行彩信设置,以确保彩信功能的正常使用。

步骤1:检查手机网络连接在进行彩信设置之前,首先需要确保手机已连接到互联网。

可以通过打开浏览器或其他应用程序来检查网络连接是否正常。

步骤2:进入手机设置在手机主屏幕上找到设置图标,点击进入设置界面。

步骤3:找到彩信设置选项在设置界面中,找到“更多”或“连接”等选项,然后再找到“彩信”或“多媒体消息”等选项。

步骤4:配置彩信APN在彩信设置选项中,需要找到“APN”或“接入点名称”等选项。

点击进入APN设置界面。

步骤5:添加彩信APN信息在APN设置界面中,点击“添加新APN”或“新建”按钮,开始配置彩信APN信息。

步骤6:填写彩信APN信息根据运营商提供的配置信息,填写彩信APN的相关参数。

一般包括APN名称、APN类型、代理、端口等信息。

请根据具体情况填写正确的信息。

步骤7:保存设置配置完成后,点击保存或确认按钮,保存彩信APN设置。

步骤8:测试彩信功能重新打开手机短信应用,尝试发送或接收彩信,检查彩信功能是否正常工作。

四、常见问题与解决方法在进行彩信设置过程中,可能会遇到一些问题。

下面列举了一些常见问题及其解决方法:1.无法发送彩信–检查彩信APN设置是否正确;–检查网络连接是否正常;–重新启动手机。

2.彩信发送失败–检查彩信文件大小是否超过限制;–检查彩信收件人的手机号是否正确。

3.无法接收彩信–检查彩信APN设置是否正确;–检查手机存储空间是否足够。

华为手机如何设置彩信

华为手机如何设置彩信

华为手机如何设置彩信彩信是一种可以发送图片、音频、视频等多媒体内容的短信形式,它为我们提供了更丰富的沟通方式。

华为手机作为一款功能强大的智能手机,也支持彩信功能。

本文将详细介绍如何在华为手机上设置彩信。

首先,打开华为手机的设置界面。

可以通过下拉通知栏,点击设置图标进入设置界面。

也可以在主屏幕上找到设置图标,点击进入。

在设置界面中,向下滑动,找到“无线和网络”选项,点击进入。

在“无线和网络”选项中,找到“移动网络”选项,点击进入。

在“移动网络”选项中,找到“接入点名称”或“APN”选项,点击进入。

在“接入点名称”或“APN”选项中,点击“新建APN”或“添加APN”。

在新建或添加APN的界面中,需要填写一些必要的信息。

根据你的运营商提供的资料,填写以下信息:1. 名称:可以随意填写,例如“彩信”。

2. APN:根据运营商的要求填写正确的APN名称。

3. 代理:一般情况下不需要填写代理。

4. 端口:一般情况下不需要填写端口。

5. 用户名和密码:根据运营商的要求填写正确的用户名和密码。

6. 服务器:根据运营商的要求填写正确的服务器地址。

7. MMSC:根据运营商的要求填写正确的彩信服务器地址。

8. MMS代理:根据运营商的要求填写正确的MMS代理。

9. MMS端口:根据运营商的要求填写正确的MMS端口。

填写完毕后,点击保存或确定按钮保存设置。

接下来,返回到设置界面,再次点击“无线和网络”选项。

在“无线和网络”选项中,找到“移动网络”选项,点击进入。

在“移动网络”选项中,找到“接入点名称”或“APN”选项,点击进入。

在接入点名称或APN选项中,找到刚刚创建的彩信APN,点击选择。

现在,你已经成功设置了华为手机的彩信功能。

你可以尝试发送一条彩信给你的朋友,分享照片、音频或视频等多媒体内容。

需要注意的是,彩信功能需要运营商的支持,并且可能会收取额外费用。

在使用彩信功能时,请确保你的手机已经开通了彩信服务,并且你的手机套餐包含了彩信功能。

Android开发-如何分析彩信收发慢的问题

Android开发-如何分析彩信收发慢的问题

Android彩信收发慢的问题总结简介本文主要介绍如何入手分析彩信的长时间发生不出去或者下载不下来的问题.结合log来介绍分析这类问题的方法、步骤。

彩信跟短信不一样,短信通过CS域就能收发,而彩信需要通过手机的PS 域才能收发,简单的证明:在手机上关闭数据开关是能够发短信的,但是不能够发彩信。

彩信的收发原理其实跟上网原理几乎没太大区别,不一样的地方在于上网不需要浏览器请求激活数据业务,收发彩信需要彩信应用主动请求激活彩信PDP,激活成功后才能开始收发彩信,当然如果上网的PDP跟彩信的是同一个Apn,就不需要重新激活。

有些概念需要简单介绍一下:APN:接入点名称,也就是接入到哪个数据网络,激活的是哪个apn就是把数据发给哪个网络,比如中国移动有cmnet,cmwap。

有的企业也可以向运营商申请建一个自己的私有网络。

PDP:包数据协议,是一种数据传输的协议,可以保证UE能把数据正确地发到目的地和从目的地过来的数据可以发给对应的UE,一般用在GPRS网络。

还可以使用PPP协议来进行数据传输,PPP主要用在CDMA2000网络下面开始分步介绍如何分析这种问题1、首先检查彩信的PDP是否激活并维持足够的时间不同的应用可能需要激活的apn不一样,如上网用的是cmnet,发彩信则要cmwap,如何来保证应用能激活对应的apn。

Android对数据业务类型进行分类,比如上网的apn类型是default,发彩信的是mms等,只有在apn里的类型这一栏配置了对应的类型,才能激活该apn。

有个ApnContext的类专门维护每个类型的状态,因此可以通过它打印的log 来看彩信的状态是否有变化,就能知道彩信的有没有成功激活过。

在radio log搜[Apncontext:mms]setState就能看的彩信2、如果状态没有变化,检查有没有发起过PDP的激活3、如果没有看到激活请求,检查是否具备发起激活请求的条件dcTracker是一个管理移动数据连接的模块,能监测是否满足条件激活PDP,满足就发起激活,不满足就关闭还是在radio log搜isDataAllowed,如果有的不满足激活PDP的条件的话,就会在log中打印出来。

Android短信彩信)的发送流程图形文字解析

Android短信彩信)的发送流程图形文字解析

信息的发送信息的发送,对于Mms应用程序来讲主要就是在信息数据库中创建并维护一条信息记录,真正的发送过程交由底层(Frameworks层)函数来处理。

总体的来讲,当信息创建完成后,对于信息通常有三个归宿,一个是放弃这个信息,也就是用户不想要此信息,一旦选择,信息将不会被保存(手动删除等);第二个去处就是保存为草稿;最后一个去处就是发送此信息当点击了发送后,UI层暂不会有变化,UI层要监听负责发送的各个类的回调信息和监听数据库的变化信息来更新UI。

信息发送的第一站是WorkingMessage(信息体构造和准备),它会先处理一下信息的相关内容,比如刷新收信人(Sync Recipients)以保证都是合法收信人,把附件(Slideshow)转成可发送的彩信附件Pdu(SendReq),makeSendReq。

然后针对不同的信息类型(短信or彩信)调用不同的处理类来处理,短信和彩信构造不同的sender(短信:SmsMessageSender;彩信:MmsMessageSender)。

但是,处理的流程也比较类似,都是先把消息放到一个队列中,然后启动相应的Service来处理。

Service会维护信息队列,然后处理每个信息。

短信是由Frameworks中的SmsManag er发送出去,而彩信是通过Ht tp 协议()发送。

短信发送在workingMessage拿到一个要发送的消息后,做了简单处理(刷新收信人),然后就会对短信和彩信彩取不同的处理流程。

对于短信,WorkingMessage除了刷新联系人外,相关的参数收信人地址是用分号分隔的一串字符,以分号为基准转化成String数组,不会再做其他的操作。

它会创建SmsMessageSender并调用其sendMessage()方法来发送信息,信息内容和所在对话的ID(thread id)在构造SmsMessageSender对象是传入的,构造完成后,直接调用其sendMessage()方法即可,接下来SmsMessageSender 会处理所有的事情。

[Android实现发短信彩信功能]发短信自动转换彩信

[Android实现发短信彩信功能]发短信自动转换彩信

首先 activity_main.某ml 布局:android:inputType="phone" ></EditTe某t></RelativeLayout>然后在AndroidManifet.某ml 中添加发送短信的权限: <ue-permiion android:name="android.permiion.SEND_SMS"/>接下来就是SmActivity 中主要代码的实现其功能:public cla SmActivity e某tend Activity {// 声明控件对象 private Button butten_m; private EditTe某t edit_phone; private EditTe某t edit_m;//创建意图对象 Intent intent = new Intent(Intent.ACTION_SEND); intent.putE某tra(Intent.E某TRA_STREAM, Uri.pare("file:///dcard/a.jpg")); intent.putE某tra("addre", phone_num); intent.putE某tra("e某it_on_ent", true); intent.putE某tra("ubject", "ubject:I love you"); intent.putE某tra("m_body", "content ::某某某某"); intent.etType("image/jpeg");tartActivity(intent);/某// 获取短信管理器对象 SmManager mManager = SmManager.getDefault(); // 意图对象 PendingIntent pendingIntent = PendingIntent.getBroadcat( SmActivity.thi, 0, new Intent(), 0);某/} }); } //发短信功能 public void end(){ //获取号码 String phone_Num =edit_phone.getTe某t().toString();//获取发送的短信 String phone_m = edit_m.getTe某t().toString();//获取信息管理器对象 SmManager mmanager = SmManager.getDefault();//意图对象 PendingIntent pendingIntent =PendingIntent.getBroadcat(SmActivity.thi, 0, new Intent(), 0);//判断信息长度大于 70则分两条发送。

手机彩信设置 (2)

手机彩信设置 (2)

手机彩信设置1. 什么是手机彩信?手机彩信是一种以多媒体形式发送和接收信息的手机功能,它允许用户发送包括文字、图片、音频、视频等多种内容的信息。

相比于普通的短信,彩信可以给用户提供更加丰富的传输方式和更好的使用体验。

2. 设置手机彩信的步骤步骤一:检查手机网络设置在开始设置手机彩信之前,首先要确保手机的网络设置正常。

请按照以下步骤检查:1.打开手机的设置菜单。

2.点击“无线和网络”或类似的选项。

3.找到并点击“移动网络”或“数据连接”。

4.确保开启了移动数据选项。

步骤二:进入彩信设置界面进入彩信设置界面的操作可能会因手机品牌和型号的不同而有所差异,以下是一些常见的进入彩信设置界面的方法:•方法一:打开手机的设置菜单,点击“短信”或“信息”,然后选择“彩信设置”。

•方法二:打开手机的短信/信息应用,点击右上角的菜单按钮(通常是三个点或线),然后选择“设置”或“更多设置”,再选择“彩信设置”。

•方法三:在手机主屏幕上长按短信/信息应用的图标,弹出的快捷菜单中选择“设置”或“应用信息”,再选择“彩信设置”。

步骤三:配置彩信参数进入彩信设置界面后,你可以配置一些彩信相关的参数。

以下是一些常见的彩信参数及其含义:•短信中心号码:彩信的发送和接收都需要通过短信中心,该参数用于设置你的手机彩信短信中心的号码。

如果你不确定该号码,可以向你的手机运营商咨询。

•访问点名称:彩信需要通过手机的数据网络进行发送和接收,该参数用于指定彩信使用的数据网络访问点。

你可以选择你的手机运营商提供的默认接入点,或者手动配置一个访问点。

•最大彩信大小:该参数用于设置手机彩信的最大大小限制。

如果你发送的彩信超出了该限制,系统可能会自动压缩彩信内容以适应限制。

•画质设置:彩信中的图片和视频可以有不同的画质选择,你可以根据个人需要调整画质设置。

步骤四:保存设置并重启手机完成彩信参数的配置后,记得保存设置并重启手机,以使新的彩信设置生效。

3. 彩信设置常见问题解决方案问题一:无法发送彩信如果你在设置好彩信参数后仍然无法发送彩信,可能是由于以下原因导致的:•网络连接问题:确保你的手机网络正常连接。

Android实现发短信和彩信功能

Android实现发短信和彩信功能

Android实现发短信和彩信功能Android实现发短信和彩信功能首先 activity_main.xml 布局:<RelativeLayout xmlns:android="/apk/res/android"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin "android:paddingT op="@dimen/activity_vertical_margin"tools:context=".SmsActivity" ><TextViewandroid:id="@+id/phone_lable"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentT op="true"android:layout_marginTop="23dp"android:text="@string/phon_lable" /><EditTextandroid:id="@+id/edit_phone"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/phone_lable"android:layout_centerHorizontal="true"android:ems="10"android:inputType="phone" ><TextViewandroid:id="@+id/sms_lable"android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_alignLeft="@+id/edit_phone" android:layout_below="@+id/edit_phone" android:layout_marginTop="22dp"android:text="@string/sms_lable" /><Buttonandroid:id="@+id/But_sms"android:layout_width="wrap_content"android:layout_height="wrap_content" android:layout_alignLeft="@+id/edit_sms" android:layout_alignParentBottom="true" android:layout_marginBottom="14dp" android:text="@string/But_sms" /><EditTextandroid:id="@+id/edit_sms"android:layout_width="match_parent"android:layout_height="wrap_content" android:layout_above="@+id/But_sms" android:layout_alignLeft="@+id/sms_lable" android:ems="10"android:inputType="textMultiLine" />然后在AndroidManifest.xml 中添加发送短信的权限:接下来就是SmsActivity 中主要代码的'实现其功能:public class SmsActivity extends Activity {// 声明控件对象private Button butten_sms;private EditText edit_phone;private EditText edit_sms;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置显示视图setContentView(yout.activity_sms);//获取按钮组件butten_sms=(Button) findViewById(R.id.But_sms);//获取输入框组件edit_phone = (EditText) findViewById(R.id.edit_phone);edit_sms = (EditText) findViewById(R.id.edit_sms);//注册按钮事件butten_sms.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View arg0) {/*** 发彩信*///获取电话号String phone_num = edit_phone.getT ext().toString();//创建意图对象Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:///sdcard/a.jpg"));intent.putExtra("address", phone_num);intent.putExtra("exit_on_sent", true);intent.putExtra("subject", "subject:I love you");intent.putExtra("sms_body", "content ::XXXX");intent.setType("image/jpeg");startActivity(intent);/*// 获取短信管理器对象SmsManager smsManager = SmsManager.getDefault();// 意图对象PendingIntent pendingIntent = PendingIntent.getBroadcast( SmsActivity.this, 0, new Intent(), 0);*/}});}//发短信功能public void send(){//获取号码String phone_Num = edit_phone.getT ext().toString();//获取发送的短信String phone_sms = edit_sms.getText().toString();//获取信息管理器对象SmsManager smsmanager = SmsManager.getDefault();//意图对象PendingIntent pendingIntent = PendingIntent.getBroadcast(SmsActivity.this, 0, new Intent(), 0);//判断信息长度大于 70则分两条发送。

Android发送彩信

Android发送彩信

Intent intent = new Intent(Intent.ACTION_SEND);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(Intent.EXTRA_STREAM, uri);//uri为你的附件的uriintent.putExtra("subject", subString);//intent.putExtra("sms_body", "sdfsdf");intent.putExtra(Intent.EXTRA_TEXT, "sdfsdf");intent.setType("image/*");//彩信附件类型intent.setClassName("com.android.mms","poseMessageActivity");startActivity(intent);接受彩信:接受彩信只能提供一个思路。

通过BroadcastReceiver来拦截彩信接收信息,需要添加权限<uses-permission android:name="android.permission.RECEIVE_MMS"></uses-permission>追问恩,那如果添加多张图片呢?在android2.1以上只能发送一个附件,图片如果多张的话需要一幻灯片得方式发送,这样,又应该怎么设计呢?回答String imagePath1 = "/sdcard/image1.png";String imagePath2 = "/sdcard/image2.png";Uri uri1 = Uri.parse("file://" + imagePath1);Uri uri2 = Uri.parse("file://" + imagePath2);ArrayList<Uri> uris = new ArrayList<Uri>();uris.add(uri1);uris.add(uri2);Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra(Intent.EXTRA_STREAM, uris);//intent.putExtra("sms_body", "sdfsdf");intent.putExtra(Intent.EXTRA_TEXT, "sdfsdf");intent.setType("image/*");intent.setClassName("com.android.mms","poseMessageActivity");startActivity(intent);改成这样,以幻灯片的形式发送追问很感谢你.....可以读取内存卡中的文件作为文本内容么?比如在sdcard中有一个bhsj.txt文件,发送的时候,直接读取bhsj.txt文件的内容作为彩信内容发送,能来一点提示么?谢谢了回答StringBuilder sBuilder = new StringBuilder();try {//读取文本文件FileInputStream iStream = new FileInputStream("/sdcard/bhsj.txt");byte[] buffer = new byte[1024];int length = 0;int totalLen = 0;while ((length = iStream.read(buffer)) > 0) {//将读取的文字保存的到StringBuidlersBuilder.append(new String(buffer));}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//获得总的文本内容,这里如果是中文,可能有乱码,这个自己解决,不然代码就多了String content = sBuilder.toString();Intent intent = new Intent(Intent.ACTION_SEND);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);intent.putExtra("LeMei", "feixun");intent.putExtra(Intent.EXTRA_STREAM, uri);//uri为附件uri,这里要自己获取//设置信息intent.putExtra("sms_body", content);intent.setType("image/*");intent.setClassName("com.android.mms","poseMessageActivity");startActivity(intent);。

[短信、邮件、通讯录]-Android-读取与插入彩信

[短信、邮件、通讯录]-Android-读取与插入彩信

[短信、邮件、通讯录] Android 读取与插入彩信在Android应用中读取彩信文件涉及到Android的一个数据库/data/data/com.android.providers.telephony/databases/mmssms.db和一个文件夹/data/data/com.android.providers.telephony/app_parts。

要备份彩信,可以将这个数据库和文件夹拷贝到硬盘,但是在应用中却不能通过openDatabase系列方法来读这个数据库,也不能通过直接打开文件来读取附件文件,因为你的应用不是它们的所有者,不能直接读取,而要使用ContentProvider来读取。

1、读取mmssms.db数据库彩信的标题、发送者号码、日期等数据存储在mmssms.db的pdu表中,要读取这个表可以使用系统提供的一个ContentProvider,URI是“content://mms”。

操作这个ContentProvider和操作数据库一样,这个ContentProvider的结构也和pdu表的结构一样,Android文档对这些字段没有说明,但是可以通过将mmssms.db数据库备份到硬盘上,然后再通过Sqlite Database Browser软件来查看分析Android系统采用SQLite数据库方式存储所有接收到的短信,短信的SQLite数据库文件位于:/data/data/com.android.providers.telephony/databases/mmssms.db备份Android短信数据库到SD卡上,可以使用adb工具连接手机,然后使用如下命令busybox cp /data/data/com.android.providers.telephony/databases/mmssms.db /sdcard如果busybox cp命令不行,还可以使用cat命令:cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db content://mms主要的几个字段如下:_id:该条彩信的主键,对应着part表(ContentProvider的URI是content://mms/part,详见后)中的mid字段。

Android手机上网设置、彩信设置教程(移动联通电信)

Android手机上网设置、彩信设置教程(移动联通电信)

Android手机上网设置、彩信设置教程(移动联通电信)如果购买了Android系统的机器,几乎都要面临一个问题,就是移动网络的上网设置,目前收集了上网设置方法(当然个个版本的系统存在差异,不过参数是这样填写的),大同小异,希望对大家有帮助!一、移动网络设置:首先在待机状态下按MENU==>无线和网络==>移动网络==>接入点名称1、MENU==>新APN(名称:CMNET设置,这个名字不重要,叫什么都行)名称:CMNET;APN:CMNET;代理:空端口:空用户名:空密码:空服务器:空MMSC:空彩信代理:空彩信端口:空彩信协议:WAP 2.0MCC:460MNC:00APN类型:default完成2、MENU==>新APN(名称:CMWAP,这个名字不重要,叫什么都行)名称:CMWAP;APN:CMWAP;代理:010.000.000.172端口:80用户名:空密码:空服务器:空MMSC:空彩信代理:空彩信端口:空彩信协议:WAP 2.0MCC:460MNC:00APN类型:default3、名称:彩信APN:cmwap (这个名字不重要,叫什么都行)MMSC: (不能有HTTP://出现,要直接写网址)彩信代理:010.000.000.172 (注意是三位数的)彩信端口:80MCC:460MNC:00APN类型:mms (这个要自己输入的)4、最后一步是:按MENU保存二、中国联通首先在待机状态下按MENU==>无线和网络==>移动网络==>接入点名称1、MENU==>新APN,填入以下内容。

名称:3gnet;APN:3gnet;代理:空端口:空用户名:空密码:空服务器:空MMSC:空彩信代理:空彩信端口:空彩信协议:WAP 2.0MCC:460MNC:01APN类型:default2、MENU==>新APN,填入以下内容。

名称:3gwap;APN:3gwap;代理:10.0.0.172端口:80用户名:空密码:服务器:空MMSC:彩信代理:010.000.000.172彩信端口:80彩信协议:WAP 2.0MCC:460MNC:01APN类型:mms三、中国电信天翼1、NET网络设置名称:NETAPN:ctnetProxy:10.0.0.200port:80Apn Type:default其他的都不变2、WAP网络设置名称:WapAPN:ctwapProxy:10.0.0.200port:80Apn Type:default其他的都不变3、彩信网络设置名称:MMSCApn:ctwapMMSC:MMS proxy:10.0.0.200port:80Apn Type:mms四、最后,记得启用网络连接!移动网络的请选择CMNET、CMWAP、CMMMS中的CMNET,网络运营商选择CMCC,启用始终连接移动数据。

Android智能手机彩信业务分析与测试

Android智能手机彩信业务分析与测试

Android智能手机彩信业务分析与测试
吴准;于剑飞;孙靖
【期刊名称】《电信网技术》
【年(卷),期】2013(000)010
【摘要】Android是目前用户量最大的智能手机操作系统,彩信是基本的移动通信业务之一.Android虽然内置了彩信应用程序,但并没有为彩信业务提供专用的开发接口,从而加大了开发和测试的难度.本文分析了原生Android系统中彩信协议数据单元的构造,以及彩信的发送和接收流程,然后介绍了为彩信业务测试而开发的Android应用程序.
【总页数】6页(P63-68)
【作者】吴准;于剑飞;孙靖
【作者单位】北京邮电大学;工业和信息化部电信研究院通信标准研究所;工业和信息化部电信研究院通信标准研究所
【正文语种】中文
【相关文献】
1.基于网络协议的彩信业务分析方法 [J], 尤振华
2.基于Android的智能手机软件性能测试系统研究 [J], 武西康;胡胜利
3.基于Android智能手机的彩信加密与传输机制研究 [J], 李欣
4.Android智能手机渗透测试研究 [J], 张靖;彭新光
5.基于彩信技术的手机报业务分析--对《中国妇女报·彩信版》的个案研究 [J], 匡文波;高岩
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
而MMS是基于WAP业务的,走数据通道,其传输能力在CSD方式下可以达到9.6kbit/s,
在GPRS方式下最大可以达到184kbit/s,在3G下可以达到2Mbit /s,给应用的开展提供
了很大的便利。用户可以随心所欲地发送和接收数据,而不再受带宽的限制。
3.在内容能力上,SMS只能发送和接收文本信息,每条消息最大只能携带140字节的
的情况下,信息将存储在多媒体消息中心(MMSC),直到能够正确送达为止。
多媒体消息服务并不依赖于基础网络,它能够在第2代、第2.5代及第3代无线网络中
实施,无论GSM、GPRS、WCDMA网络都可以支持MMS业务。考虑到网络带宽、数据传
输速度,MMS业务将在当前GPRS网络上起飞,在未来3G网络中走向成熟。
上使用标准 HTTP协议的数据不需要一个特殊的服务器和软件进行浏览甚至下载。另外一
个区别是使用MMS(例如Microsoft Windows Media Services)的流媒体服务器通过
流形式提供媒体给使用者。流媒体服务器可以处理大量数据。
MMS是微软的私有流媒体协议。它的最初目的是通过网络传输多媒体广播、视频、音
6.系统服务器生成计费信息,传送给计费中心。
多媒体消息业务
(MMS-Multimedia Messaging Service)是在短消息业务基础上发展起来的一
种新型消息业务。MMS是第3代移动通讯标准化组织3GPP 制定的全球信息传送标准,是
一项全新的数据业务,用户可以像使用短消息一样收发更加个性化的多媒体消息。它将不
格式(circuit-switched data),也支持通用分组无线服务GPRS格式(general
packet radio service)。其工作原理为利用高速传输技术EDGE(Enhanced Data
rates for GSM Erolution是一种提高数据速率的新技术,是GSM向第三代移动通信系统
法返回一个APN_REQUEST_FAILED,
在这里用到了最重要的ConnectivityManager类:
public class ConnectivityManager定义
在\frameworks\base\core\java\android\net的
ConnectivityManager.java里,其主要作用为:
MIME的格式。并存储在消息存储器(MMS-MessageStore)中。
4.服务器进行数据分析,从而得到路由信息、用户终端信息等。在分析过程中会调用
用户数据库中信息。系统将判断用户的终端是否能够支持MMS,并根据用户的终端的承载
能力(如显示分辨率、终端的容量等)进行不同的处理。例如,当用户终端不支持MMS时,
送方和接收方是一个终端或应用系统;点对多点多媒体消息业务指接收方是多个终端地址。
在一次多媒体消息发送过程中,可以指定多个接收终端地址。
5.对MMS增值应用的支持。多媒体消息系统除了支持一些现有的应用系统(如E-mail
系统)以外,还应提供开放的、标准的API接口,支持增值应用开发。
编辑本段实现方式
多媒体信息业务系统一般具有以下几个功能。
1.多媒体消息的发送和接收。手机终端合成多媒体消息后,可以向网内的所有合法用
户发送多媒体消息。由MMSC对多媒体消息进行存储和处理,并负责多媒体消息在不同
MMSC之间的传递等操作。同时接收方用户可以从MMSC接收多媒体消息。
2.提供对非MMS终端的支持。这由非多媒体消息支撑系统来体信息去掉,只把信息的文字部分以短消息的方式发给用户。
5.确认处理方法之后,系统通过被叫用户的MSIS-DN号码进行路由。MMS-Relay将
通过WAP网关与外部网络进行通信。在没有确认被叫用户已经接收了信息之前,该信息始
终保存在消息存储器中。运营商可以通过软件设定保存的时间长度。
字符信息或者是70个汉字信息。尽管EMS(Enhanced Message Service,增强型短消息
服务)可以支持图形、声音和动画信息,但这些数据的格式过于简单,用户对EMS的体验远
远不及传统Internet。而且由于每条SMS消息的大小不变。要传送超过140字节的信息必
须把EMS消息拆分成多条SMS,然后在手机上进行组合。更重要的是,EMS虽然也是
1.SMS作为一个承载可以开展各种应用,如:邮件到达通知、天气预报、新闻、铃声
图片下载、彩票、游戏、证券等。MMS作为一个应用的承载平台,除了上述应用之外,还
可以提供更丰富的应用。
2.在承载方式方面,SMS是使用GSM的信令通道。由于信令通道的传输能力有限,使
得SMS不可能传输大数据量,因而基于SMS的应用不能任意开展。必须是小数据量的应用。
的APN接入点实
现MMS数据的真实发送和接收;
源码流程
1)
Telephpony.java getOrCreateThreadId()函数:
目录:\frameworks\base\core\java\android\provider\
说明:这个函数根据接收者列表和未保存的消息返回一个线程ID,如果这个消息开始一个
A、enforceChangePermission():判断调用的进程是否具有操作权限,如果不具
有,抛出一个
SecurityException异常,并强制准许权限
B、
ConnectivityManager.isNetworkTypeValid(networkType)来判断
networkType是否合法,如果不合
百K字节,用户几乎可以完全不受信息量的影响,在一个消息中就可以完整地表达自己的
思想。
4.MMS在网络结构上与SMS不同。MMS采用的是WAP事件的处理流程,由接收方主
动从MMSC取信息,相同于WAP的浏览或下载方式。
编辑本段MMS流媒体
可以传输音、视频的通用服务器有两种,都有各自的优缺点。分别是:标准WEB服务
轨、现场直播和一系列的实时或实况材料。使用这个协议的观众可以通过电脑观看电视图
像或音轨。微软为有网络连接的家用电脑使用者开发了免费软件。MMS建立在UDP或TCP
传输/网络层上,是属于应用层的。
使用TCP的MMS上URL是MMS://或者MMST://,如果是UDP的MMS使用MMSU://。在
IMT- 2000过渡的台阶。它也被称为"GSM 384",因为这种技术能使数据速率由目前的
9.6kbit/s提高到384kbit/s,这种速率可以支持语音、因特网浏览、电子邮件、会议电视
等多种高速数据业务)和GPRS的支持下,以WAP(无线应用协议)为载体传送视频、图片、
声音和文字。
基本功能
器和流媒体服务器。标准WEB服务器使用HTTP协议。流媒体服务器使用两种协议提供媒
体服务。这两种协议分别是HTTP1.0或1.1以及MMS(MultiMediaServer)协议。流媒体
服务器使用的HTTP协议是经过修改的版本,扩展了语法命令以支持实时传输。这是普通
HTTP所不支持的。
使用两种协议提供媒体服务和WEB服务器有着显著区别。一个区别是在WEB服务器
低带宽的情况下推荐使用UDP连接。HTTP带有大量的头信息,UDP一般不能通过防火墙,
在有防火墙的情况下使用HTTP。TCP的无差错特性是非常诱人的,它的吞吐量比UDP小,
但是在下载MMS的时候TCP是不二的选择。
流程简介
以系统向手机发送信息为例,介绍一下多媒体信息服务的流程。在过程分析中省略了
手机终端合成多媒体消息后,可以向网内所有合法用户发送多媒体消息,由多媒体消
息中心MMSC对多媒体消息进行存储和处理,并负责将多媒体消息在不同MMSC之间的传
递等操作。同时接收方用户可以从MMSC接收多媒体消息。多媒体消息服务要求一个WAP
网关,一个数据传输网如电路交换网、GPRS或WCDMA网络,和一个短消息中心。目前,
收多媒体消息的流程为例,非MMS终端用户接到SMS通知后,可以通过其他手段访问多媒
体消息,如E-mail、WAP、www浏览等方式。
3.在网络承载方式上,现阶段支持基于CSD和GPRS的承载方式,未来将支持3G承载
方式。
4.多媒体消息业务支持点到点的业务和点到多点的业务。点对点多媒体消息业务指发
1.Mms概述
MMS为Multimedia Messaging Service的缩写,中文译为多媒体短信服务。中国移动
公司把它定名为“彩信”,可以用于传送文字、图片、动画、音频和视频等多媒体信息。
。MMS的工业标准是由两个组织,WAP Forum(WAP论坛)和3GPP 所制订的。因此,
MMS是设计成可以在WAP协议的上层运行,它不局限于传输格式,既支持电路交换数据
3)再一次调用第一步函数
4)
ConnectivityService.java startUsingNetworkFeature()函数:
目录:\framework\base\services\java\com\android\server\
说明:该函数为实现Mms网络连接的关键函数,下面我们详细分析:
阅MMS了。
第三种是使用普通手机的发送方可在互联网上直接给使用MMS手机的接收方发送
MMS。
与SMS的比较
MMS与SMS在消息发送方式上都是相同的:都是存储一转发业务,即消息不是直接送
达用户。而是先送至消息中心,再经过消息中心转发到用户。但是,MMS与SMS也存在着
很大差异:
相关文档
最新文档