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商做法是接收完文件后,會(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商做法是接收完文件后,會(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)完全退出程序方法(退出所有activity)
這篇文章主要介紹了android中實(shí)現(xiàn)完全退出程序方法(退出所有activity),本文方法是博主個(gè)人使用的一個(gè)方法,據(jù)說(shuō)效果非常好,需要的朋友可以參考下2015-05-05Android學(xué)習(xí)系列一用按鈕實(shí)現(xiàn)顯示時(shí)間
這篇文章主要介紹了Android學(xué)習(xí)系列一用按鈕實(shí)現(xiàn)顯示時(shí)間的相關(guān)資料,需要的朋友可以參考下2016-05-05Android從觸碰屏幕開(kāi)始的事件采集解析及分發(fā)
這篇文章主要為大家介紹了Android從觸碰屏幕開(kāi)始的事件采集解析及分發(fā),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06Android中TelephonyManager類(lèi)的方法實(shí)例分析
這篇文章主要介紹了Android中TelephonyManager類(lèi)的方法,以實(shí)例形式較為詳細(xì)的分析了Android基于TelephonyManager類(lèi)獲取手機(jī)各種常用信息的相關(guān)技巧,需要的朋友可以參考下2015-09-09Android 動(dòng)態(tài)注冊(cè)監(jiān)聽(tīng)網(wǎng)絡(luò)變化實(shí)例詳解
這篇文章主要介紹了Android 動(dòng)態(tài)注冊(cè)監(jiān)聽(tīng)網(wǎng)絡(luò)變化實(shí)例詳解的相關(guān)資料,這里提供簡(jiǎn)單實(shí)例及實(shí)現(xiàn)效果圖,需要的朋友可以參考下2017-07-07Android Studio實(shí)現(xiàn)幀動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)幀動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11Android下拉刷新控件SwipeRefreshLayout源碼解析
這篇文章主要為大家詳細(xì)解析Android下拉刷新控件SwipeRefreshLayout源碼,感興趣的小伙伴們可以參考一下2016-07-07