2010-08-31 55 views
2

我有一個處理特定類型文件的Android應用程序。它爲MIME類型和文件名模式註冊意圖過濾器。這一切都從文件管理器正常工作;我選擇了一個文件,我得到一個適用於該文件的操作列表的提示,我的應用程序在列表中,我選擇它並運行。Android:正確處理通過藍牙接收的文件

但是,當我通過藍牙將文件傳送到設備時,這不起作用。文件被接收並被正確下載,但是從傳輸頁面選擇文件什麼也不做(儘管我仍然可以使用文件管理器在/ sdcard/downloads/bluetooth中找到下載的文件並從那裏運行它)。日誌中包含:

V/BluetoothOppUtility( 565): Get data from db:/mnt/sdcard/downloads/bluetooth/foo.appnull00:11:22:33:44:55 
E/BluetoothOppUtility( 565): ERROR: Para fileName ==null, or mimetype == null 

(該文件的名稱這裏是foo.app。)

它看起來像它的決定,該文件沒有MIME類型和被放棄,而不是廣播意圖要求基於文件名的匹配。

這是HTC Desire上的Froyo,我知道HTC一直在修補藍牙堆棧(因爲Android的股票不允許任意文件被髮送到設備)。有誰知道我該如何做這項工作? Beaming .jpg和.png文件正常工作...

回答

2

調查顯示,如果藍牙堆棧沒有收到發件人的MIME類型,則通過使用android.webkit.MimeTypeMap類來確定MIME類型。這個類有一個擴展和MIME類型的硬編碼表。這意味着無法在不向Google發送補丁並等待下一個版本的情況下注冊其他擴展程序。

相關問題