999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能手機通過甩動完成資料快速傳遞方法的研究與實現

2013-12-31 00:00:00謝思健董懿楊昱昺
科技創新與應用 2013年18期

摘 要:Android智能手機是目前應用最廣泛的智能手機平臺。音樂、視頻播放是目前手機的通用軟件,雖然應用廣泛,但在音頻文件和視頻文件等共享方面還停留在傳統的文件拷貝上,費時費力。如果研發一種具備通過手機甩動,能快速傳遞資料方法的音樂、視頻播放器,將提高用戶手機文件共享的便利性。本文詳細介紹了手機甩動觸發事件的機理,并介紹了目前常用的兩種發送方法:利用服務器轉發和SOCKET的點對點傳送,為廣大Android智能手機愛好者提供寶貴的參考價值。

關鍵詞:Android;甩動發送;服務器;SOCKET

1 引言

Android是以Linux為基礎的開放源碼操作系統,主要用于便攜設備。作為谷歌企業戰略的重要組成部分,基于Android的各種移動設備已被廣大的用戶使用。因此使得基于Android平臺的開發得到了巨大的發展。

音樂、視頻播放是目前手機的通用軟件,雖然應用廣泛,但在音頻文件和視頻文件等共享方面還停留在傳統的文件拷貝上,費時費力。如研發一種具備通過手機甩動,能快速傳遞資料方法的音樂、視頻播放器,將提高用戶手機文件共享的便利性。

在Android手機平臺上實現兩臺媒體間的資料傳輸有很多途徑,但是方法就兩種。一種是一對多的傳輸,一種是點對點的傳輸。

一對多的傳輸,其實就是在兩臺媒體之間再找一個媒介,也就是設置一個服務器做中轉站,“中轉”要傳輸的資料。目前,通過STRUTS在TOMCAT服務器上構建一個“中轉站”已非難事,因此,關于文件傳輸的第一個方法是通過服務器來解決。

一對一的傳輸,就是兩個手機間直接傳輸,可通過SOCKET解決點對點傳輸問題。

2 實現方法

2.1 甩動方式的事件機制

甩動方式發送文件是通過調用設備中的加速度感應器來實現。通過建立實現Android設備中的SensorListener接口ShakeSensorActivity類,并在該類中添加加速度偵聽事件,通過判斷設備X、Y、Z方向的總晃動值,判斷是否需要觸發傳送事件,如圖1所示。

以音樂播放器模塊為例,如果以設備總晃動值100作為一個測試判斷點,那么當你甩動手機,總晃動值大于100時,在音樂播放界面時就Intent發送操作。

2.2 服務器方式傳輸原理

服務器方式傳輸原理如圖2所示,通過WLAN無線網絡,利用服務器完成手機間文件傳輸。

圖1 甩動事件機制類圖 圖2服務器方式傳送流程圖

通過Struts框架完成手機和服務器端的文件傳送軟件,服務器端代碼運行在Tomcat服務器,通過Http協議實現傳輸。

2.3 服務器方式傳輸設計

2.3.1 手機端和服務器設置在同一局域網內,編寫代碼實現手機端和服務器的連接。

2.3.2 編寫代碼,完成客戶端將歌曲的相關信息上傳到服務器的功能,核心代碼如下:

……

HttpPost hp=new HttpPost(uploadurl);

MultipartEntity me=new MultipartEntity();

……

if(hr.getStatusLine().getStatusCode()==HttpStatus.SC_OK){

Message msg=handler.obtainMessage();

msg.what=1;

msg.obj=“分享成功”;

handler.sendMessage(msg);

}else{

Message msg=handler.obtainMessage();

msg.what=1;

msg.obj=“分享失敗”;

handler.sendMessage(msg);

}

……

2.3 編寫代碼,完成服務器接收到歌曲,并提供給下一臺設備下載。

2.4 SOCKET方式傳輸原理

SOCKET方式傳輸原理是:將接收者的手機當作服務器,開啟服務器端程序,等待接收發送者的手機通過甩動并將需要發送的文件發送到接收者的手機上,具體見圖3所示。有時為了更方便操作,可將接收者通過廣播方式,將自己的IP地址進行廣播,發送方在接收到廣播信息后,記錄廣播者地址,當需要發送時,選擇該地址即可。

2.5 SOCKET方式傳輸設計

2.5.1 作為服務器端的手機獲取本機的IP地址。

2.5.2 作為傳輸端的手機輸入/選擇對方IP地址進行連接。

2.5.3 兩只手機連接成功進行文件傳輸。

傳輸端核心代碼:

……

if(socket.isConnected()){ handler.sendEmptyMessage(UPLOAD_ING);

reader = new DataInputStream(new BufferedInputStream(new FileInputStream(audioFile)));

out = new DataOutputStream(socket.getOutputStream());

out.writeInt(UP_LOAD);

out.writeUTF(fname);

int bufferSize = 2*1024;

buf = new byte[bufferSize];

int read = 0;

while((read = reader.read(buf)) != -1){

out.write(buf, 0, read);

}

handler.sendEmptyMessage(UPLOAD_SUCCESS);

}

……

3 測試結果

3.1 服務器方式傳輸測試

3.1.1 進入播放頁面甩動手機,選擇好友wjy發送。

3.1.2 歌曲上傳到服務器。

3.1.3 將用戶切換至剛才選擇的wjy,會出現好友分享成功提示。

3.2 SOCKET點對點方式傳輸測試

3.2.1 作為服務器端的手機獲取本機IP。

3.2.2 作為傳輸端的手機輸入對方IP進行連接。

4 結束語

智能手機通過甩動完成資料快速傳遞是利用Android手機中的加速度感應器實現。傳送文件有兩種途徑:一種為服務器傳送,這種方式相對來說穩定。一種為Socket點對點傳送,這種方式相對來說比較簡潔,設計者可根據需要選擇其中一種完成。

參考文獻

[1]王秀芳,楊陽.基于Android的YOBO在線音樂播放器[J].科學技術與工程,2011,11:2506-2509.

[2]張正政,林耀榮.基于Android系統的影音播放器開發[J].現代電子技術,2011,02:5-8.

作者簡介:謝思健(1991-),男,寧波大紅鷹學院信息工程學院,研究方向:軟件開發。

楊昱 (1969-),男,副教授,研究方向:軟件開發,文本檢索。

主站蜘蛛池模板: 国产真实二区一区在线亚洲| 亚洲成人高清无码| 国产高清毛片| 毛片网站在线看| 欧美成人手机在线观看网址| 欧美一级黄色影院| 日韩精品一区二区三区swag| 国产精品网曝门免费视频| 国产成人亚洲精品无码电影| 欧洲在线免费视频| 亚洲AV无码一区二区三区牲色| 另类专区亚洲| 欧美19综合中文字幕| 欧美成人h精品网站| 成人福利在线视频免费观看| 热久久这里是精品6免费观看| 男女男精品视频| 国产永久在线视频| 91视频青青草| 国产第一页亚洲| 欧美视频免费一区二区三区| 免费看av在线网站网址| 亚洲无码37.| 免费看美女自慰的网站| 国产麻豆精品久久一二三| 免费毛片网站在线观看| 亚洲精品国产综合99| 最新亚洲人成无码网站欣赏网| 亚洲高清在线天堂精品| 精品无码一区二区三区电影| 亚洲欧美日韩中文字幕在线一区| 国产精品30p| 国产一区在线观看无码| 久久成人国产精品免费软件| 久青草免费视频| 一级爱做片免费观看久久| 国产成人av大片在线播放| 日韩欧美国产成人| 久久国产精品国产自线拍| 国产精品极品美女自在线| 538国产在线| 久久精品丝袜| 伦伦影院精品一区| 精品一区二区三区水蜜桃| 四虎永久在线| 人人91人人澡人人妻人人爽| 精品91视频| 国产成人高清精品免费软件| 国产91色在线| 国产精品午夜福利麻豆| 无码有码中文字幕| 五月天福利视频| 国产视频大全| 丰满人妻被猛烈进入无码| 浮力影院国产第一页| 狠狠综合久久久久综| 中字无码精油按摩中出视频| a级毛片毛片免费观看久潮| 精品视频一区在线观看| 奇米精品一区二区三区在线观看| 国产精品漂亮美女在线观看| 综合久久五月天| 国产成人凹凸视频在线| 福利在线一区| 午夜精品一区二区蜜桃| 国产成人无码AV在线播放动漫| 国内精品伊人久久久久7777人| 亚洲男人的天堂久久香蕉| 一级毛片免费观看久| 亚洲精品爱草草视频在线| 亚洲天堂自拍| 99久久亚洲综合精品TS| 国产视频只有无码精品| 成年网址网站在线观看| a毛片在线免费观看| 伊人久久久久久久久久| 亚洲一区毛片| 久久综合国产乱子免费| 999国产精品永久免费视频精品久久| 欧美黄网站免费观看| 国产丝袜精品| 亚洲制服丝袜第一页|