android通過(guò)藍(lán)牙接收文件打開(kāi)時(shí)無(wú)法自動(dòng)選擇合適的應(yīng)用程序
更新時(shí)間:2013年06月17日 15:35:25 作者:
android 通過(guò)藍(lán)牙接收文件,從歷史傳輸記錄打開(kāi),無(wú)法自動(dòng)選擇合適的應(yīng)用程序,比如video player打開(kāi).3gp、.mp4文件等等
通過(guò)藍(lán)牙接收文件,從歷史傳輸記錄打開(kāi),無(wú)法自動(dòng)選擇合適的應(yīng)用程序
但是從file manager打開(kāi)這個(gè)新接收的文件,是可以選擇對(duì)應(yīng)的應(yīng)用程序(比如video player打開(kāi).3gp、.mp4文件)
歷史傳輸記錄打開(kāi)download的文件,是通過(guò)接收文件時(shí)對(duì)方傳過(guò)來(lái)的mime type來(lái)選擇適合的APP打開(kāi)該文件
如果出現(xiàn)提示“未支持格式的文件”,或者使用了錯(cuò)誤的APP來(lái)打開(kāi)該文件
原因在于發(fā)送方發(fā)送文件時(shí)填的mime type存在問(wèn)題
如下的log是mtk接收方的log,請(qǐng)注意黃色字體的tag
Bluetooth.OPP(299): opps newTask: [total=801728][result=null][_id=1][peer_addr=00:23:AF:D5:F6:8B][done=0][name=Eternal Blue.mp3][data=/mnt/sdcard/Received File/Eternal Blue.mp3][state=0][mime=audio/mpeg][type=11][uri=null][peer_name=XT502]
mime type是對(duì)文件類(lèi)型的一個(gè)描述,有其相關(guān)的標(biāo)準(zhǔn)來(lái)關(guān)聯(lián)不同類(lèi)型文件
mime type有誤需要先排查發(fā)送方問(wèn)題
1. 發(fā)送方為非mtk手機(jī),需確認(rèn)發(fā)送給不同平臺(tái)的對(duì)比手機(jī),是否都能正常打開(kāi)該文件
2. 發(fā)送方為mtk手機(jī),通過(guò)第三方安裝APK(如第三方gallery發(fā)圖片)發(fā)送文件,需先排查第三方安裝APK的問(wèn)題,傳出來(lái)的intent所帶的mime type有誤
3. 發(fā)送方為mtk手機(jī),通過(guò)自帶APK發(fā)文件,請(qǐng)?zhí)峤籩service由mtk處理
需要明確一點(diǎn),某些對(duì)比的接收方?jīng)]有此問(wèn)題,是因?yàn)槟承S(chǎng)商做法是接收完文件后,會(huì)重新檢測(cè)該文件并生成新的mimetype
如果只有某些特定文件才有問(wèn)題,可參考此方法從mtk接收方做mimetype轉(zhuǎn)換作為規(guī)避方法
\xintong\packages\apps\Bluetooth\profiles\opp\src\com\mediatek\bluetooth\opp\adp\OppManager.java
oppsStartPushActivity {
...
//add begin
//根據(jù)無(wú)法識(shí)別的mime type來(lái)轉(zhuǎn)換
if( mimeType.equals("無(wú)法識(shí)別的mimetype");
this.mOppsTask.setMimeType("正確的mimetype");
/*
根據(jù)后綴名來(lái)轉(zhuǎn)換對(duì)應(yīng)的mimetype
String extname = objectName.substring(objname.lastIndexOf("."));
if(extname.equals(".xxx"))
this.mOppsTask.setMimeType("正確的mimetype");
*/
else
//add end
this.mOppsTask.setMimeType(mimeType);
但是從file manager打開(kāi)這個(gè)新接收的文件,是可以選擇對(duì)應(yīng)的應(yīng)用程序(比如video player打開(kāi).3gp、.mp4文件)
歷史傳輸記錄打開(kāi)download的文件,是通過(guò)接收文件時(shí)對(duì)方傳過(guò)來(lái)的mime type來(lái)選擇適合的APP打開(kāi)該文件
如果出現(xiàn)提示“未支持格式的文件”,或者使用了錯(cuò)誤的APP來(lái)打開(kāi)該文件
原因在于發(fā)送方發(fā)送文件時(shí)填的mime type存在問(wèn)題
如下的log是mtk接收方的log,請(qǐng)注意黃色字體的tag
Bluetooth.OPP(299): opps newTask: [total=801728][result=null][_id=1][peer_addr=00:23:AF:D5:F6:8B][done=0][name=Eternal Blue.mp3][data=/mnt/sdcard/Received File/Eternal Blue.mp3][state=0][mime=audio/mpeg][type=11][uri=null][peer_name=XT502]
mime type是對(duì)文件類(lèi)型的一個(gè)描述,有其相關(guān)的標(biāo)準(zhǔn)來(lái)關(guān)聯(lián)不同類(lèi)型文件
mime type有誤需要先排查發(fā)送方問(wèn)題
1. 發(fā)送方為非mtk手機(jī),需確認(rèn)發(fā)送給不同平臺(tái)的對(duì)比手機(jī),是否都能正常打開(kāi)該文件
2. 發(fā)送方為mtk手機(jī),通過(guò)第三方安裝APK(如第三方gallery發(fā)圖片)發(fā)送文件,需先排查第三方安裝APK的問(wèn)題,傳出來(lái)的intent所帶的mime type有誤
3. 發(fā)送方為mtk手機(jī),通過(guò)自帶APK發(fā)文件,請(qǐng)?zhí)峤籩service由mtk處理
需要明確一點(diǎn),某些對(duì)比的接收方?jīng)]有此問(wèn)題,是因?yàn)槟承S(chǎng)商做法是接收完文件后,會(huì)重新檢測(cè)該文件并生成新的mimetype
如果只有某些特定文件才有問(wèn)題,可參考此方法從mtk接收方做mimetype轉(zhuǎn)換作為規(guī)避方法
\xintong\packages\apps\Bluetooth\profiles\opp\src\com\mediatek\bluetooth\opp\adp\OppManager.java
復(fù)制代碼 代碼如下:
oppsStartPushActivity {
...
//add begin
//根據(jù)無(wú)法識(shí)別的mime type來(lái)轉(zhuǎn)換
if( mimeType.equals("無(wú)法識(shí)別的mimetype");
this.mOppsTask.setMimeType("正確的mimetype");
/*
根據(jù)后綴名來(lái)轉(zhuǎn)換對(duì)應(yīng)的mimetype
String extname = objectName.substring(objname.lastIndexOf("."));
if(extname.equals(".xxx"))
this.mOppsTask.setMimeType("正確的mimetype");
*/
else
//add end
this.mOppsTask.setMimeType(mimeType);
相關(guān)文章
Android編程實(shí)現(xiàn)帶有圖標(biāo)的ListView并帶有長(zhǎng)按菜單效果示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)帶有圖標(biāo)的ListView并帶有長(zhǎng)按菜單效果,結(jié)合實(shí)例形式分析了Android帶圖標(biāo)的ListView及菜單功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06
android實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
Android編程實(shí)現(xiàn)禁止StatusBar下拉的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)禁止StatusBar下拉的方法,涉及Android StatusBarManager相關(guān)屬性控制操作技巧,需要的朋友可以參考下2017-08-08
Android實(shí)踐之帶加載效果的下拉刷新上拉加載更多
這篇文章主要給大家介紹了關(guān)于A(yíng)ndroid實(shí)踐之下拉刷新上拉加載更多的相關(guān)資料,實(shí)現(xiàn)的效果在現(xiàn)在的很多項(xiàng)目中都能用到,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
android相冊(cè)選擇圖片的編碼實(shí)現(xiàn)代碼
本篇文章主要介紹了android相冊(cè)選擇圖片的編碼實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
實(shí)例講解Android App使用自帶的SQLite數(shù)據(jù)庫(kù)的基本方法
這篇文章主要介紹了Android App使用自帶的SQLite數(shù)據(jù)庫(kù)的基本方法,SQLite是一個(gè)小巧的內(nèi)嵌型數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)需求不大的情況下使用SQLite其實(shí)非常有效,需要的朋友可以參考下2016-04-04
CoordinatorLayout的使用如此簡(jiǎn)單(Android)
這篇文章主要為大家詳細(xì)介紹了Android CoordinatorLayout的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
Android自定義可循環(huán)的滾動(dòng)選擇器CycleWheelView
Android自定義可循環(huán)的滾動(dòng)選擇器CycleWheelView替代TimePicker/NumberPicker/WheelView,很實(shí)用的一篇文章分享給大家,感興趣的小伙伴們可以參考一下2016-07-07

