实例介绍
手机局域网通讯工具,集信息聊天,文件收发,语音呼叫于一体,开发该软件的灵感来自于电脑上的飞鸽传书,在平常的工作生活中每个人的手机中都会保存些自己的珍藏,如音乐美图等等。但是要与朋友同事共享就得把存储卡拔下来,这样操作一是麻烦二是从手机上拔卡装到他的手机上是一件很纠结的事情,针对该问题我想到了平时自己电脑上用的飞鸽传书,于是决心自己做一个手机上用的飞鸽传书。 前提:手机通过wifi连入局域网 特点: 1、手机间短信息聊天 2、手机间收发文件 3、手机间语音呼叫 知识点: 1、短信息收发与双方协商交流采用UDP协议 2、语音传输与文件传输采用TCP协议 3、文件传输过程采用多线程,以加快文件传输速度 难点:整个项目主要是运用java相关的知识与android的相关特性,这些大家都比较熟悉,主要的难点在于底层相互通讯的协议封装,这个如果以前没有接触过可能会有一些难度,但是关健还是要大家动手去做。 注意事项: 1、如果语音通话的时候出现噪音,这时因为机器没有回声消除电路,喇叭出来的声音又回到MIC里去了。(机子硬件问题,无法解决) 2、如果网络中虽有多个机器在运行但是还是无法注册,说明机器本身不支持多播协议。(机子硬件问题,无法解决)
【实例截图】
【核心代码】
4744302542858445401.rar
└── 功能强大的飞鸽源码
└── fflypigeon
├── AndroidManifest.xml
├── assets
│ └── protocol.doc
├── bin
│ ├── classes.dex
│ ├── com
│ │ └── android
│ │ └── flypigeon
│ │ ├── home
│ │ │ ├── AboutDialog.class
│ │ │ ├── ChartMsgActivity$1.class
│ │ │ ├── ChartMsgActivity$2.class
│ │ │ ├── ChartMsgActivity$3.class
│ │ │ ├── ChartMsgActivity$4.class
│ │ │ ├── ChartMsgActivity$5.class
│ │ │ ├── ChartMsgActivity$6.class
│ │ │ ├── ChartMsgActivity$7.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$1.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$2.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$3.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$4.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$5.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv$6.class
│ │ │ ├── ChartMsgActivity$MyBroadcastRecv.class
│ │ │ ├── ChartMsgActivity.class
│ │ │ ├── FlyPigeonMainActivity$1.class
│ │ │ ├── FlyPigeonMainActivity$2.class
│ │ │ ├── FlyPigeonMainActivity$3.class
│ │ │ ├── FlyPigeonMainActivity$4.class
│ │ │ ├── FlyPigeonMainActivity$5.class
│ │ │ ├── FlyPigeonMainActivity$6.class
│ │ │ ├── FlyPigeonMainActivity$ExListAdapter.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$1.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$2.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$3.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$4.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$5.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv$6.class
│ │ │ ├── FlyPigeonMainActivity$MyBroadcastRecv.class
│ │ │ ├── FlyPigeonMainActivity.class
│ │ │ ├── MyFileAdapter.class
│ │ │ ├── MyFileManager$1.class
│ │ │ ├── MyFileManager$2.class
│ │ │ ├── MyFileManager$3.class
│ │ │ ├── MyFileManager$4.class
│ │ │ ├── MyFileManager.class
│ │ │ ├── PersonLongClickDialog.class
│ │ │ ├── ReceiveSendFileListAdapter.class
│ │ │ ├── SettingDialog$SpinAdapter.class
│ │ │ └── SettingDialog.class
│ │ ├── R$array.class
│ │ ├── R$attr.class
│ │ ├── R$drawable.class
│ │ ├── R$id.class
│ │ ├── R$integer.class
│ │ ├── R$layout.class
│ │ ├── R$menu.class
│ │ ├── R$string.class
│ │ ├── R.class
│ │ ├── service
│ │ │ ├── MainService$CheckNetConnectivity.class
│ │ │ ├── MainService$CheckUserOnline.class
│ │ │ ├── MainService$CommunicationBridge$AudioHandler$AudioPlay.class
│ │ │ ├── MainService$CommunicationBridge$AudioHandler$AudioSend.class
│ │ │ ├── MainService$CommunicationBridge$AudioHandler.class
│ │ │ ├── MainService$CommunicationBridge$FileHandler$1.class
│ │ │ ├── MainService$CommunicationBridge$FileHandler$SaveFileToDisk.class
│ │ │ ├── MainService$CommunicationBridge$FileHandler.class
│ │ │ ├── MainService$CommunicationBridge.class
│ │ │ ├── MainService$ServiceBinder.class
│ │ │ ├── MainService$ServiceBroadcastReceiver.class
│ │ │ ├── MainService$UpdateMe.class
│ │ │ └── MainService.class
│ │ └── util
│ │ ├── ByteAndInt.class
│ │ ├── Constant.class
│ │ ├── FileName.class
│ │ ├── FileState.class
│ │ ├── Message.class
│ │ ├── Person.class
│ │ └── protocol.txt
│ ├── flypigeon.apk
│ └── resources.ap_
├── default.properties
├── gen
│ └── com
│ └── android
│ └── flypigeon
│ └── R.java
├── proguard.cfg
├── res
│ ├── drawable
│ │ ├── gdoc.png
│ │ ├── list_item_selector_bg.xml
│ │ └── listview_selected.xml
│ ├── drawable-hdpi
│ │ ├── about_icon.png
│ │ ├── all_bird.png
│ │ ├── apk.png
│ │ ├── attatchment_icon.png
│ │ ├── bg.jpg
│ │ ├── black_bird.png
│ │ ├── blue_bird.png
│ │ ├── call_icon.png
│ │ ├── dialog_bg.jpg
│ │ ├── doc.png
│ │ ├── file_icon.png
│ │ ├── flypigeon.png
│ │ ├── folder_icon2.png
│ │ ├── folder_icon.png
│ │ ├── folder_root.png
│ │ ├── folder_up.png
│ │ ├── green_bird.png
│ │ ├── green_pig.png
│ │ ├── icon.png
│ │ ├── image.png
│ │ ├── jar.png
│ │ ├── long_cancel.png
│ │ ├── music.png
│ │ ├── pig_egg.png
│ │ ├── ppt.png
│ │ ├── rar.png
│ │ ├── received_msg_bg.9.png
│ │ ├── red_bird.png
│ │ ├── send_file_icon.png
│ │ ├── send_msg_bg.9.png
│ │ ├── send_msg_icon.png
│ │ ├── sendmsg_icon.png
│ │ ├── setting_icon.png
│ │ ├── video.png
│ │ ├── white_bird.png
│ │ ├── xls.png
│ │ └── yellow_bird.png
│ ├── drawable-ldpi
│ │ ├── about_icon.png
│ │ ├── all_bird.png
│ │ ├── apk.png
│ │ ├── attatchment_icon.png
│ │ ├── bg.jpg
│ │ ├── black_bird.png
│ │ ├── blue_bird.png
│ │ ├── call_icon.png
│ │ ├── dialog_bg.jpg
│ │ ├── doc.png
│ │ ├── file_icon.png
│ │ ├── flypigeon.png
│ │ ├── folder_icon2.png
│ │ ├── folder_icon.png
│ │ ├── folder_root.png
│ │ ├── folder_up.png
│ │ ├── green_bird.png
│ │ ├── green_pig.png
│ │ ├── icon.png
│ │ ├── image.png
│ │ ├── jar.png
│ │ ├── long_cancel.png
│ │ ├── music.png
│ │ ├── pig_egg.png
│ │ ├── ppt.png
│ │ ├── rar.png
│ │ ├── received_msg_bg.9.png
│ │ ├── red_bird.png
│ │ ├── send_file_icon.png
│ │ ├── send_msg_bg.9.png
│ │ ├── send_msg_icon.png
│ │ ├── sendmsg_icon.png
│ │ ├── setting_icon.png
│ │ ├── video.png
│ │ ├── white_bird.png
│ │ ├── xls.png
│ │ └── yellow_bird.png
│ ├── drawable-mdpi
│ │ ├── about_icon.png
│ │ ├── all_bird.png
│ │ ├── apk.png
│ │ ├── attatchment_icon.png
│ │ ├── bg.jpg
│ │ ├── black_bird.png
│ │ ├── blue_bird.png
│ │ ├── call_icon.png
│ │ ├── cancel_icon.png
│ │ ├── dialog_bg.jpg
│ │ ├── doc.png
│ │ ├── file_icon.png
│ │ ├── flypigeon.png
│ │ ├── folder_icon2.png
│ │ ├── folder_icon.png
│ │ ├── folder_root.png
│ │ ├── folder_up.png
│ │ ├── gp.png
│ │ ├── green_bird.png
│ │ ├── green_pig.png
│ │ ├── home_bg.jpg
│ │ ├── icon.png
│ │ ├── image.png
│ │ ├── jar.png
│ │ ├── long_cancel.png
│ │ ├── music.png
│ │ ├── ok_icon.png
│ │ ├── pig_egg.png
│ │ ├── ppt.png
│ │ ├── rar.png
│ │ ├── received_msg_bg.9.png
│ │ ├── red_bird.png
│ │ ├── send_file_icon.png
│ │ ├── send_msg_bg.9.png
│ │ ├── send_msg_icon.png
│ │ ├── sendmsg_icon.png
│ │ ├── setting_icon.png
│ │ ├── tab_bg.9.png
│ │ ├── Thumbs.db
│ │ ├── video.png
│ │ ├── white_bird.png
│ │ ├── xls.png
│ │ └── yellow_bird.png
│ ├── layout
│ │ ├── about_dialog_layout.xml
│ │ ├── fileselect_layout.xml
│ │ ├── head_image_spinner_layout.xml
│ │ ├── main.xml
│ │ ├── person_chart_layout.xml
│ │ ├── person_item_layout.xml
│ │ ├── person_long_click_layout.xml
│ │ ├── received_msg_layout.xml
│ │ ├── request_file_popupwindow_layout.xml
│ │ ├── request_talk_layout.xml
│ │ ├── row_file_layout.xml
│ │ ├── send_msg_layout.xml
│ │ ├── send_receive_file_layout.xml
│ │ └── setting_dialog_layout.xml
│ ├── menu
│ │ ├── chart_menu.xml
│ │ └── main_menu.xml
│ └── values
│ ├── array.xml
│ ├── color.xml
│ ├── integer.xml
│ └── strings.xml
└── src
└── com
└── android
└── flypigeon
├── home
│ ├── AboutDialog.java
│ ├── ChartMsgActivity.java
│ ├── FlyPigeonMainActivity.java
│ ├── MyFileAdapter.java
│ ├── MyFileManager.java
│ ├── PersonLongClickDialog.java
│ ├── ReceiveSendFileListAdapter.java
│ └── SettingDialog.java
├── service
│ └── MainService.java
└── util
├── ByteAndInt.java
├── Constant.java
├── FileName.java
├── FileState.java
├── Message.java
├── Person.java
└── protocol.txt
29 directories, 234 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论