首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android BLE onScanResult从未被调用过

Android BLE onScanResult从未被调用过
EN

Stack Overflow用户
提问于 2020-01-17 17:29:10
回答 2查看 443关注 0票数 1

我已经为Android开发了一个小的BLE应用程序,它与我的移动音乐盒连接。在我的手机上一切正常(Android 9)。所以我买了一台平板电脑(Android9),onScanResult从来没有调用过,但当我用Android board-function进行搜索时,我看到了蓝牙设备。

代码语言:javascript
复制
ACCESS_FINE_LOCATION
BLUETOOTH 
BLUETOOTH_ADMIN 

并将Location设置为on。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-17 18:25:56

如果你的蓝牙是开着的,然后给运行时许可,ACCESS_FINE_LOCATION和ACCESS_CORSE_LOCATION,但你仍然面临这个问题,然后gps打开并重新开始扫描它的工作正常。

BLE所需权限,

代码语言:javascript
复制
   <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是否已启用

代码语言:javascript
复制
       private fun enableLocation(): Boolean {
    val service = activity?.getSystemService(Context.LOCATION_SERVICE) as   LocationManager
    val enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER)
    return enabled
}

如果返回false,则

代码语言:javascript
复制
val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
                    startActivity(intent)

对于程序启用您的gps,如果是真的,那么扫描您的设备。

票数 1
EN

Stack Overflow用户

发布于 2020-01-17 18:04:31

可以在清单中声明ACCESS_FINE_LOCATION,但默认情况下不会将其视为授予。您是否请求在运行时授予此权限?如果没有,请在运行时请求,或者只需转到应用程序设置中的权限部分并手动授权。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59784541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档