找回密码
 注册
搜索
查看: 1313|回复: 1

[讨论] 在XMPP中传递图片的方法(转载)

[复制链接]
发表于 2010-6-19 23:07:38 | 显示全部楼层 |阅读模式
本文将讲述一种在android手机之间传输照片的方法。照片来源于手机摄像头的快照,传输的途径是通过xmpp协议。对在anroid平台的xmpp试验不熟悉的同学可以参看<在android平台进行xmpp实验及分析>一文(以下简称文1)。

技术原理
实现照片传输的方式很简单,主要涉及到以下流程:
发送端:
     a.绑定本机到一个 jabber session。
     b.从摄像头获取快照,然后转化成bitmap图片,进而转化成png压缩格式。
     c. 使用base64,获取该png图片数据的文本形式.
     d.通过IXmppSession的sendDataMessage方法,向接收对象的JID发送一个Intent.该intent的extra  bundle 中置入png图片的文本载体。该Intent的action假定为 SNAPSHOT_XMPP.
接收端:
    a.绑定本机到另一个jabber session。
    b. 在AndroidManifest.xml中注册一个receiver,接收action为SNAPSHOT_XMPP的intent。
    c. 在该receiver中使用NotificationManager.notifyWithText方法发送一个通知,同时把receiver所接收到的 intent的bundle内容(包含照片),拷贝到该通知的clickIntent的bundle中。
    d.在该通知所绑定的 clickIntent所激活的Activity中,从intent中获取照片的base64编码,再解码成Bitmap,显示。同时取消该通知。
之所以把图片转化文本,进行传输,是因为IXmppSession的sendDataMessage方法所使用的Bundle,目前只能夹带文本数据。

工程下载
点击这里,获取完整的eclipse android工程,名为camera_xmpp.

如何运行
1.在eclipse中运行camera_xmpp.系统将启动模拟器5555
2.将模拟器5555绑定到gmail1.
3. 使用adb shell启动模拟器5557。
4.在5557上安装camera_xmpp的apk。
5.将模拟器5557绑定到 gmail2.
这5步的操作步骤都可以在文1中找到,其中第4步比较麻烦,涉及到在第2个模拟器中安装apk应用的问题。我常常失败,后来我找到了一种很简单而又很稳妥的解决办法。新的步骤如下:
1.在eclipse中运行camera_xmpp.系统将启动模拟器5555
2.将模拟器5555绑定到gmail1.
3.拷贝C:\Documents and Settings\chenwf\Local Settings \Application Data\Android\userdata.img到c:\userdata2.img。你的环境可能需要酌情修改。
4. 在cmd窗口执行以下指令:
      
emulator -skin QVGA-L -data C:\userdata2.img

系统将启动模拟器5557,而且因为用户数据和模拟器5555一样,自然就安装了5555的所有应用。
5. 将模拟器5557绑定到gmail2.
6.让5555停留在桌面界面。让5557运行截屏传输应用。如下图所示.


7.在5557中传送屏幕截屏到 5555所绑定的gmail1,如下图所示.

8.稍后,5555的通知就出现了(左上角).

9.在 5555中按上键,通知icon获得焦点。

10.在5555中点击通知icon, 显示收到的来自5557的截屏。

题外话
我曾试着在 android平台实现远程设备进行实时视频,音频传输,可是目前wifi api还未公布,而xmpp又开不了socket连接,好像还没有办法,不知道大家有没有办法。
发表于 2010-6-23 15:18:33 | 显示全部楼层
楼主你的软件很不错哦~,我建议你也到魅媒论坛发布一下,他们会帮忙评测,宣传,我的软件
         http://bbs.mmclick.com/thread-7747-1-1.html评测就上百度新闻了~
         
         http://news.baidu.com/ns?word=android+%BE%AB%C6%B7%D3%A6%D3%C3+cont:1758632592&cl=1&tn=news&rn=30  [em06]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-23 14:12 , Processed in 0.064162 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表