Android: правильная обработка файлов, полученных через Bluetooth - PullRequest
2 голосов
/ 31 августа 2010

У меня есть приложение для Android, которое обрабатывает файл определенного типа.Он регистрирует фильтры намерений как для типа MIME, так и для шаблона имени файла.Это все отлично работает из файловых менеджеров;Я выбираю файл, мне предлагают список действий, применимых к файлу, мое приложение находится в списке, я выбираю его, и оно работает.

Однако это не работает, когда я передаю файлк устройству через Bluetooth.Файл получен и правильно загружен, но выбор файла на странице передачи ничего не делает (хотя я все еще могу использовать файловый менеджер, чтобы найти загруженный файл в / 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 и сдается, скореечем передача намерения с запросом на совпадение на основе имени файла.

Это на Froyo на HTC Desire, и я знаю, что HTC возиться со стеком Bluetooth (так как на складе Android не позволяет произвольные файлыбыть излученным на устройство).Кто-нибудь знает, как я могу сделать эту работу?Передача файлов .jpg и .png работает нормально ...

1 Ответ

2 голосов
/ 03 сентября 2010

Расследование показывает, что стек Bluetooth, если он не получает тип MIME от отправителя, определяет тип MIME с помощью класса android.webkit.MimeTypeMap.Этот класс имеет жестко закодированную таблицу расширений и MIME-типов.Это означает, что невозможно зарегистрировать дополнительные расширения без отправки исправлений в Google и ожидания следующей версии.

...