2010-08-31 2 views
2

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

Однако это не работает, когда я передаю файл на устройство через 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 не позволяют произвольным файлам быть пустым на устройстве). Кто-нибудь знает, как я могу сделать эту работу? Beaming .jpg и .png файлы прекрасно работают ...

ответ

2

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

Смежные вопросы