Проблема доступа BLE с командой `Cordova run android --device '? - PullRequest
0 голосов
/ 29 июня 2019

Я создаю простое приложение BLE, используя cordona / phonegap.

Я использую BLE lock в качестве примера. Все работает отлично с `cordova serve ': cordova может сканировать и получать доступ к BLE-устройствам с помощью приложения Phonegap Android.

enter image description here enter image description here

Однако, с помощью `cordova run android --device ', я мог бы создать отдельное приложение для Android, загрузить его на свое устройство Android; но устройства BLE не отображаются, когда я запускаю загруженное приложение на устройстве Android.

enter image description here

Что может иметь значение? Нужно ли делать что-то еще, чтобы автономное приложение получало доступ к функциям Android BLE?

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Вам необходимо установить плагин Cordova Bluetooth в приложение Cordova.

cordova plugin add cordova-plugin-ble-central

Если вы используете телефонный пробел, попробуйте

phonegap plugin add cordova-plugin-ble-central

Приложение работает при запуске в PhoneGap Developer App , поскольку в этом приложении предварительно установлен плагин Bluetooth. Когда вы работаете прямо в Cordova, вам нужно установить плагин самостоятельно.

Перед установкой плагина вы можете увидеть ошибку с помощью Chrome. Чтобы получить трассировку стека из приложения на устройстве Android: Откройте Chrome на своем компьютере, введите chrome: // inspect, выберите свое устройство. Вы должны увидеть подобное сообщение в консоли.

stacktrace in chrome dev tools showing ble is not defined

После установки плагина и повторного развертывания проекта сканирование должно работать.

 cordova plugin add cordova-plugin-ble-central
 cordova run android --device

screenshot of updated android app that found a bluetooth device

0 голосов
/ 12 июля 2019

Ответ Дона (почти) идеален для меня, но я думаю, что мне нужно добавить еще кое-что на всякий случай.

установка плагина

Команда, которую я фактически использовал, была phonegap plugin add cordova-plugin-ble-central с этого сайта .

После этого у меня есть каталог плагинов, созданный с помощью библиотек BLE.

модификация config.xml (?)

Я не думаю, что этот шаг не является необходимым, но сайт говорит, что эти две строки должны быть добавлены в config.xml, но я мог бы создать приложение без этого шага.

<gap:plugin name="cordova-plugin-ble-central" source="npm" /> <preference name="phonegap-version" value="cli-6.1.0" />

выполнение

Я мог бы использовать эту команду для сборки и установки приложения.

cordova platform add android cordova run android --device

причина проблемы

Когда я попробовал некоторые плагины BLE, я установил другие плагины. В результате у меня есть com.megster.rordova.ble и cordova-plugin-ble-central в моей директории плагинов. Я также думаю, что config.xml и package.json могут содержать некоторую неверную информацию, чтобы не включать правильную библиотеку BLE

Итак, когда я очищаюсь, установил программу блокировки BLE, установил плагин BLE и собрал приложение, все выглядит нормально.

...