android10蓝牙搜不到ble设备_Android 6.0 扫描不到 Ble 设备需开启位置权限的方法

在Android 6.0及以上版本,蓝牙低功耗(BLE)设备扫描需要动态申请ACCESS_COARSE_LOCATION权限并开启位置服务。本文介绍了如何在应用运行时请求权限,以及检查和打开定位服务的步骤,以解决扫描不到BLE设备的问题。
摘要由CSDN通过智能技术生成

之前做 Ble 开发都是在 Android 6.0 系统以下的版本中进行测试的,今天使用 Android 6.0 的设备测试的时候,发现扫描不到周围的 Ble 设备。后来发现 6.0 需要在应用运行过程中请求位置权限,并且还要打开位置。

动态申请位置权限 ACCESS_COARSE_LOCATION

在 AndroidManifest.xml 文件中加入

然后在程序运行过程中进行申请

private static final int REQUEST_CODE_ACCESS_COARSE_LOCATION = 1;

...

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//如果 API level 是大于等于 23(Android 6.0) 时

//判断是否具有权限

if (ContextCompat.checkSelfPermission(this,

Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

//判断是否需要向用户解释为什么需要申请该权限

if (ActivityCompat.shouldShowRequestPermissionRationale(this,

Manifest.permission.ACCESS_COARSE_LOCATION)) {

showToast("自Android 6.0开始需要打开位置权限才可以搜索到Ble设备");

}

//请求权限

ActivityCompat.requestPermissions(this,

new String[]{Manifest.permi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值