отправка Bluetooth-файла через класс BluetoothShare не работает - PullRequest
0 голосов
/ 25 мая 2011

Я разрабатываю приложение, в котором у меня есть file uri, а также адрес устройства bt со мной .Мне нужно отправить файл на определенное устройство BT.Но экран выбора устройства не должен отображаться. Он должен непосредственно запустить отправку устройства .

Очевидно, намерение: ACTION_SEND здесь не является опцией , так как он покажет диалоговое окно выбора.Основная цель приложения - обойти диалоговое окно выбора и позволить пользователю отправить выбранный файл напрямую на выбранное устройство.

Итак, я пробовал следующее решение, предложенное в переполнении стека:

/*BluetoothDevice device;
String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg";
ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString());
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);*/

Но, к сожалению, это не работает.После вставки getContentResolver (). Никаких действий не предпринимается.Само собой разумеется, я пробовал различные разрешения и другие вещи, но безрезультатно.

Итак, люди, которые использовали этот код, пожалуйста, предоставьте ваши предложения.Буду очень признателен за любую помощь для удовлетворения требований.

Ответы [ 2 ]

0 голосов
/ 17 января 2013

Я тоже нашел эту проблему. Я могу показать некоторые доказательства, чтобы решить эту проблему. Попробовав этот код, проверьте очередь исходящей передачи вашего устройства (чтобы открыть ее, отправьте файл вручную на устройство и щелкните значок уведомления). Затем вы можете увидеть, что устройство попыталось отправить объекты, и они не удалось. Нажмите на одно сообщение об ошибке, и вы увидите всплывающее окно без пути к файлу. Я думаю, что проблема в том, что здесь мы устанавливаем путь к файлу, используя URI для contentValues, он не будет проверяться в процессе. Для этого нужно что-то сделать.

0 голосов
/ 01 сентября 2011

Выдает какое-либо исключение? Пожалуйста, поделитесь своим выходом Logcat.

Кстати, пользуйтесь у вас следующим разрешением в AndroidManifest.xml

<uses-permission android:name="android.permission.BLUETOOTH"/>

Если вы делаете обнаружение устройства, добавьте это тоже в файл манифеста

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...