精华内容
下载资源
问答
  • 彩信

    2010-09-14 18:01:00
    彩信 转自:http://gnibre.javaeye.com/blog/644122<br />  在Android应用中读取彩信文件涉及到Android的一个数据库/data/data /com.android.providers.telephony/databases/mmssms.db和一个文件夹/data/...

    彩信

    转自:http://gnibre.javaeye.com/blog/644122

     

    在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软件来查看分析,具体可参考:http://www.blogjava.net/easywu/archive/2010/01/10 /308959.html。
        content://mms主要的几个字段如下:
              ◆ _id:该条彩信的主键,对应着part表(ContentProvider的URI是content://mms/part,详见后)中的mid字段。
              ◆sub:该条彩信的标题
              ◆date:该条彩信的接收日期
        下面的代码可以查询该CotnetProvider,得到一个cursor,并列出所有的列名。

    Java代码
    1. Cursor cur = getContentResolver().query(Uri.parse( "content://mms" ), nullnullnullnull );  
    2.   
    3. String [] temp=cur.getColumnNames();  
    4. for  ( int  i= 0 ;i<temp.length;i++)  
    5. System.out.println(i+":" +temp);   
            Cursor cur = getContentResolver().query(Uri.parse("content://mms"),null, null, null, null);
    
            String [] temp=cur.getColumnNames();
            for (int i=0;i<temp.length;i++)
            System.out.println(i+":"+temp); 
    


    通过上面的方法得到cursor后,就可以对这个cursor操作,并通过get方法得到_id,然后根据这个_id读取彩信附件文件。

    2、读取彩信附件文件

          彩信附件文件的地址存储在mmssms.db的part表的_data字段,形如“/data/data /com.android.providers.telephony/app_parts/PART_1262693697763”,但在应用中读取彩信 附件时,这个字段基本没什么用,因为不能直接读取这个文件。读取同样要通过ContentProvider,URI为“content://mms /part”,该URI就是对应着part表。可以使用下列代码段来读取文件:

    Java代码
    1. String selection =  new  String( "mid='"  + key +  "'" ); //这个key就是pdu里面的_id。   
    2. Cursor cur = getContentResolver().query(Uri.parse("content://mms/part" ),  null , selection,  nullnull );  
    3.   
    4.         if  (cur.moveToFirst())  
    5.             do  {  
    6.                     int  _partID = cur.getInt(cur.getColumnIndex( "_id" ));  
    7.                     String partID = String.valueOf(_partID);  
    8.                     Uri partURI = Uri.parse("content://mms/part/"  + partID);  
    9.                       
    10.                     ByteArrayOutputStream baos = new  ByteArrayOutputStream();  
    11.                     InputStream is = null ;  
    12.   
    13.                     try  {  
    14.                         is = getContentResolver().openInputStream(partURI);  
    15.                         byte [] buffer =  new   byte [ 256 ];  
    16.                         int  len = is.read(buffer);  
    17.                         while  (len >=  0 )   
    18.                         {  
    19.                             baos.write(buffer, 0 , len);  
    20.                             len = is.read(buffer);  
    21.                         }  
    22.                     } catch  (IOException e) {  
    23.                     } finally  {  
    24.                         if  (is !=  null ) {  
    25.                             try  {  
    26.                                 is.close();  
    27.                             } catch  (IOException e) {  
    28.   
    29.                             }   
    30.                         }  
    31.                     }  
    32.                     }  
    String selection = new String("mid='" + key + "'");//这个key就是pdu里面的_id。
    Cursor cur = getContentResolver().query(Uri.parse("content://mms/part"), null, selection, null, null);
    
            if (cur.moveToFirst())
                do {
                        int _partID = cur.getInt(cur.getColumnIndex("_id"));
                        String partID = String.valueOf(_partID);
                        Uri partURI = Uri.parse("content://mms/part/" + partID);
                        
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        InputStream is = null;
    
                        try {
                            is = getContentResolver().openInputStream(partURI);
                            byte[] buffer = new byte[256];
                            int len = is.read(buffer);
                            while (len >= 0) 
                            {
                                baos.write(buffer, 0, len);
                                len = is.read(buffer);
                            }
                        } catch (IOException e) {
                        } finally {
                            if (is != null) {
                                try {
                                    is.close();
                                } catch (IOException e) {
    
                                } 
                            }
                        }
                        }
    


    这里得到的baos,就是附件文件。

    3、声明permission

        要在代码中使用content://mms,content://mms/part,content://sms等,还要在 AndroidManifest.xml中注册premission,代码如下:

    Java代码
    1. </application>  
    2. <uses-permission android:name="android.permission.READ_SMS"  /> 
    展开全文
  • 彩信

    2011-06-29 09:04:00
    在Android应用中读取彩信文件涉及到Android的一个数据库/data/data /com.android.providers.telephony/databases/mmssms.db和一个...要备份彩信,可以将这个数据库和文件夹拷贝到硬盘,但是在应用中却不能通过openDatab

    在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软件来查看分析,具体可参考:http://www.blogjava.net/easywu/archive/2010/01/10/308959.html。 
        content://mms主要的几个字段如下: 
              ◆ _id:该条彩信的主键,对应着part表(ContentProvider的URI是content://mms/part,详见后)中的mid字段。 
              ◆sub:该条彩信的标题 
              ◆date:该条彩信的接收日期 
        下面的代码可以查询该CotnetProvider,得到一个cursor,并列出所有的列名。 

     

    通过上面的方法得到cursor后,就可以对这个cursor操作,并通过get方法得到_id,然后根据这个_id读取彩信附件文件。 

    2、读取彩信附件文件 

          彩信附件文件的地址存储在mmssms.db的part表的_data字段,形如“/data/data /com.android.providers.telephony/app_parts/PART_1262693697763”,但在应用中读取彩信附件时,这个字段基本没什么用,因为不能直接读取这个文件。读取同样要通过ContentProvider,URI为“content://mms /part”,该URI就是对应着part表。可以使用下列代码段来读取文件: 

     

    这里得到的baos,就是附件文件。 

    3、声明permission 

        要在代码中使用content://mms,content://mms/part,content://sms等,还要在 AndroidManifest.xml中注册premission,代码如下: 

     


    展开全文
  • 彩信-源码

    2021-02-18 17:31:39
    彩信
  • 彩信宝宝

    2006-04-27 00:00:00
    彩信宝宝的彩信功能。它可以将电脑中存储的图片,网页中的...用彩信宝宝发送自己制作的彩信贺卡便是今年最时尚的“彩信祝福”。 彩信宝宝可以免费注册,无需手机号,我相信彩信宝宝一定会让您享受到超凡的彩信服务。
  • 手机彩信_手机彩信图片.doc
  • 彩信收发原理图,描述 彩信 的收 发 流程。
  • 彩信 mms

    2008-08-28 13:56:26
    彩信 1
  • 彩信 - 彩信服务

    2014-08-20 18:24:11
    彩信 - 彩信服务 多媒体信息服务(MMS)的前身是第三代合作伙伴计划(3GPP)中开发的一个标准组织,致力于为UMTS / GSM网络的标准。彩信广泛被许多业内人士吹捧为一个用于2.5G和3G网络的最大潜力摇钱树。 MMS是为...
    彩信 - 彩信服务 多媒体信息服务(MMS)的前身是第三代合作伙伴计划(3GPP)中开发的一个标准组织,致力于为UMTS / GSM网络的标准。彩信广泛被许多业内人士吹捧为一个用于2.5G和3G网络的最大潜力摇钱树。 MMS是为允许发送的邮件,其中包括多媒体对象(图像,音频,视频),而不仅仅是文字消息,如短消息服务(SMS),将电话通讯系统的标准。它主要是部署在蜂窝网络与其他消息传递系统,如SMS,移动即时消息等等。 彩信被视为成熟的通讯技术最好的,这个品种,超过手机短信和电子邮件,以提供真正的多媒体体验到移动用户。第一个商业解决方案出现在市场上,2002年和彩信的普及率正在迅速接近的大规模市场应用所需要的水平。通过利用获得的技术,彩信已被广泛接受的主要市场参与者和整个电信行业提供了巨大的商机。 彩信短消息服务(SMS)的成果。随着彩信,移动设备不再局限于纯文字讯息。它被设计成移动分组数据服务如GPRS和1x / EVDO工作。彩信实现了巨大的涵盖企业和个人的通信,信息和娱乐应用的数量。 有交付两种模式的彩信:1,立即2递延在彩信服务 通过照相手机拍摄快照,并发送给朋友撰写自己的动画图片信息和发送给朋友发送音频文件,发送图片和音频文件,同时播放的广告音乐下载和播放存储照片到所面临在线相册远程监控面临的挑战通过彩信 1.Content适应2.Distribution名单3.Bulk消息4.Handset配置5.WAP推 彩信不应与增强型讯息服务(EMS),这简直是短信额外的负载能力,使手机发送和接收具有特殊的文本格式,如粗体或颜色的消息,动画,图片,图标,声音迷惑效果和特殊的铃声。彩信建立在短信使用量的巨大成功,并进一步加入多媒体增强了移动用户的通信的可能性。多媒体短信仍然是首先应视作一种人对人的服务,但也开始变得更加的以社区为基础的通信现象。
    展开全文
  • 彩信的交互过程 彩信的PDU 彩信的PDU编码
  • 彩信制作

    千次阅读 2014-02-25 11:24:33
    上文介绍了彩信规范,接下来我们说下彩信的制作问题。彩信的制作无非就是生成彩信包。  彩信编辑无非就是生成对应的smil文件,直接上代码: public class makeSmil { // smil文件存放路径 private String ...

          上文介绍了彩信规范,接下来我们说下彩信的制作问题。彩信的制作无非就是生成彩信包。

           彩信编辑无非就是生成对应的smil文件,直接上代码:

    public class makeSmil {
    	// smil文件存放路径
    	private String filepath = "";
    	// smil文件名称
    	private String filename = "";
    	// smil文件内容
    	private String filecontent = "";
    	// 记录文本文件数量(写入彩信中文件条数)
    	private int filetxt = 0;
    
    	// 设置文件存放路径
    	public void setSmilPath(String path) {
    		this.filepath = path;
    		// 如果目录不存在,则创建
    		File rootDir = new File(this.filepath);
    		if (!rootDir.isDirectory()) {
    			rootDir.mkdirs();
    		}
    	}
    
    	public String getSmilPath() {
    		return this.filepath;
    	}
    
    	// 设置smil文件名称
    	public void setSmilName(String name) {
    		this.filename = name;
    	}
    
    	public String getSmilName() {
    		return this.filename;
    	}
    
    	// 重置smil文件
    	public void resetSmil() {
    		this.filecontent = "";
    	}
    
    	// 为smil文件加入头部信息
    	public void smilAddHead() {
    		this.filecontent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
    		this.filecontent = "<smil>";
    		this.filecontent += "\n  <head>";
    		this.filecontent += "\n    <layout>";
    		this.filecontent += "\n      <root-layout height=\"100%\" width=\"100%\"/>";
    		this.filecontent += "\n      <region id=\"Text\" height=\"50%\" width=\"100%\" left=\"0\" top=\"50%\" fit=\"scroll\"/>";
    		this.filecontent += "\n      <region id=\"Image\" height=\"50%\" width=\"100%\"  left=\"0\" top=\"0\"/>";
    		this.filecontent += "\n    </layout>";
    		this.filecontent += "\n  </head>";
    		this.filecontent += "\n  <body>";
    	}
    
    	// 设置彩信开始标记及彩信播放时间
    	public void setSmilParStart(int time) {
    		this.filecontent += "\n    <par dur=\"" + time + "s\">";
    	}
    
    	// 设置彩信结尾标记
    	public void setSmilParEnd() {
    		this.filecontent += "\n    </par>";
    	}
    
    	// 设置彩信片断开始标记
    	public void setSmilSeqStart() {
    		this.filecontent += "\n      <seq>";
    	}
    
    	// 设置彩信片断结束标记
    	public void setSmilSeqEnd() {
    		this.filecontent += "\n      </seq>";
    	}
    
    	// 设置彩信声音
    	public void smilAddAudio(String audio) {
    		this.filecontent += "\n    <audio src=\"" + audio + "\"/>";
    	}
    
    	// 给文件添加文字内容
    	public void smilAddTxt(String str, int time) {
    		filetxt++;
    		FileWriter fw;
    		try {
    			fw = new FileWriter(this.filepath + this.filename + filetxt
    					+ ".txt");
    			fw.write(str, 0, str.length());
    			fw.flush();
    			fw.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		this.filecontent += "\n        <text src=\"" + this.filename + filetxt
    				+ ".txt\" region=\"Text\"  dur=\"" + time + "s\"/>";
    	}
    
    	// 给文件添加图片
    	public void smilAddImg(String img, int time) {
    		this.filecontent += "\n        <img src=\"" + img
    				+ "\" region=\"Image\"  dur=\"" + time + "s\"/>";
    	}
    
    	// 给文件添加尾部信息
    	public void smilAddFoot() {
    		this.filecontent += "\n  </body>";
    		this.filecontent += "\n</smil>";
    	}
    
    	// 生成彩信smil文件
    	public void generateSmil() {
    		FileWriter fw;
    		try {
    			fw = new FileWriter(this.filepath + this.filename + ".smil");
    			fw.write(this.filecontent, 0, this.filecontent.length());
    			fw.flush();
    			fw.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	// 读取生成文件内容
    	public String getFileContent() {
    		String strContent = "";
    		File f = new File(this.getSmilPath() + this.getSmilName() + ".smil");
    		BufferedReader reader;
    		try {
    			reader = new BufferedReader(new FileReader(f));
    			String line;
    			while ((line = reader.readLine()) != null) {
    				strContent += line;
    			}
    		} catch (IOException e) {
    			return e.toString();
    		}
    
    		return strContent;
    	}
    
    	public static void main(String[] args) {
    		String path = "D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/mms/mms/";
    		String name = "smil1";
    		// 创建对象
    		makeSmil sml = new makeSmil();
    		// 设置文件存放路径
    		sml.setSmilPath(path);
    		// 设置文件名
    		sml.setSmilName(name);
    		// 设置文件内容
    		sml.resetSmil();// 重置文件内容
    		sml.smilAddHead();// 并添加文件头部信息。
    		sml.setSmilParStart(60);// 彩信开始标记
    		sml.smilAddAudio("a.wav");// 彩信声音文件
    		sml.setSmilSeqStart();// 彩信片断开始标记
    		sml.smilAddTxt("彩信生成程序测试1!", 5);// 加入文字
    		sml.smilAddImg("smil1.jpg", 5);// 加入图片
    		sml.smilAddTxt("彩信生成程序测试2!", 5);// 加入文字
    		sml.setSmilSeqEnd();// 彩信片断结束标记
    		sml.setSmilParEnd();// 彩信结束标记
    		sml.smilAddFoot();// 加入文件尾部信息
    
    		// 生成彩信文件
    		sml.generateSmil();
    
    		// 读取生成文件
    
    		String str = sml.getFileContent();
    
    		System.out.println(str);
    	}     

           以上只是简单的图片、文字、视频分帧编辑,如果有需要做特殊的处理,就要认真学习下smil规范了。在这提示大家一下,在用手机做彩信编辑器时候,注意:图片缓存问题,和彩信包大小问题,最好控制在100k之内。

    展开全文
  • 彩信业务合作

    2021-08-31 18:26:11
    彩信业务合作
  • android 彩信 自定义

    2015-01-21 10:03:11
    不调用系统彩信发送彩信,目前可以发送彩信,希望对大家有用
  • 手机发送短信和彩信程序,采用的是 asp.net C# 自己调试吧,结合硬件设备。
  • 后台彩信发送

    2014-09-30 00:14:13
    后台彩信发送
  • 彩信引擎111

    2013-06-27 20:39:55
    彩信应用彩信应用接口方面的,还可以谁都可以啊。
  • 彩信模拟网关

    2013-06-03 00:07:39
    彩信模拟网关,直接模拟移动、电信、联通的彩信网关接口服务,可供开发人员在开发彩信接口时联调使用,可从该模拟器上查看手机上接收到的彩信信息是什么样的,也可以使用该模拟器模拟手机回复彩信
  • PHP如何发送彩信

    2011-08-17 16:03:00
    <?... $snoopy = Factory::getBaseClass('Snoopy');...$submit_url = "发送彩信的接口地址"; $submit_vars['topic'] = '彩信主题'; //彩信主题(140个字节,既70个中文字符) $zip_stream = urlenco...
  • 今天一个项目遇到"有点卡能发送彩信,的不能"问题,查看MTK FAQ,发现原生android竟然一个判断,判断运营商是否会对彩信的流量收费,然后决定是否能在关闭数据流量时发送彩信.,可见谷歌针对这个问题还是研究过,但是...
  • 彩信编辑器

    2012-04-12 15:40:59
    彩信编辑器
  • 彩信打包程序 (彩信zip数据包)移动代理服务器 接口调用
  • 4.0原生 彩信

    2011-11-29 21:32:25
    4.0原生 彩信
  • 彩信协议1.2

    2012-07-13 14:14:40
    彩信协议1.2 用于手机彩信模块的开发资料
  • 彩信协议1.0

    2012-07-13 14:13:20
    彩信协议1.0 用于手机彩信模块的开发文档
  • 发送彩信代码

    2013-05-17 10:57:53
    这是发送彩信代码,java语言写的,简单实用。大家可以参考一下。
  • 彩信文件测试

    2018-03-08 17:15:39
    项目中sip的mms设计验证,主要是测试彩信协议和sip协议,
  • asp彩信接口

    2013-10-03 20:01:14
    通过自己编辑的asp网页就可以利用这个彩信接口给彩信好友发送短信,但前提是必须是自己或者彩信好友才可以
  • 彩信SDK控件

    2014-01-22 14:39:56
    彩信开发的亲,可以研究下咯。爱特生彩信控件发布包。
  • 在营销方面就多增加了一种彩信营销。彩信营销与报纸,电视,广播,发传单等传统营销模式相比,彩信营销即将C位出道。 彩信是建立短信的基础上研究开发出来的,所以说短信具备的功能,彩信也同样具备。彩信营销...
  • 彩信收发Demo

    2016-07-08 11:19:54
    从5.0系统 剥离出的彩信部分收发 源码。
  • 彩信发送笔记

    2019-03-30 19:50:36
    从sendMmsWorker函数的参数就可以看出来:(conv, mmsUri, persister, slideshow, sendReq) 上下文,uri,PduPersister(彩信pdu的),slideshow 包含了所有的彩信信息,sendreq包含了mime封装mms时的headers,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,127
精华内容 7,250
关键字:

彩信有什么用