Android BLE onScanResult никогда не вызывается - PullRequest
0 голосов
/ 17 января 2020

Я разработал небольшое приложение BLE для Android, которое подключается к моей мобильной коробке musi c. На моем телефоне все отлично работает (Android 9). Поэтому я купил планшет (Android 9) и там никогда не вызывается onScanResult, но когда я выполняю поиск с помощью функции Android board, я вижу устройство Bluetooth.

ACCESS_FINE_LOCATION
BLUETOOTH 
BLUETOOTH_ADMIN 

установлено и местоположение установлено вкл.

Ответы [ 2 ]

1 голос
/ 17 января 2020

если ваш Bluetooth включен, тогда дайте разрешение времени выполнения, ACCESS_FINE_LOCATION и ACCESS_CORSE_LOCATION, но проблема все еще остается, а затем включите gps и перезапустите сканирование.

Требуется разрешение для BLE,

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

и проверьте, включен ли gps или нет

       private fun enableLocation(): Boolean {
    val service = activity?.getSystemService(Context.LOCATION_SERVICE) as   LocationManager
    val enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER)
    return enabled
}

, и если вы вернете false, то

val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
                    startActivity(intent)

для программного включения вашего gps и, если true, тогда сканируйте ваше устройство.

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

ACCESS_FINE_LOCATION может быть объявлен в манифесте, но по умолчанию он не обрабатывается как предоставленный. Вы просили предоставить это разрешение во время выполнения? Если нет, запросите его во время выполнения или просто go для раздела разрешений в настройках приложения и предоставьте его вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...