从 github 下载 google 的蓝牙样例代码学习 ( https://github.com/android/connectivity-samples/tree/main/BluetoothLeGatt ),发现这个祖传代码“年久失修”啊,项目的 build.gradle 文件竟然是空白的...... OK没关系~ 自己加。
好不容易跑起来,扫描后的回调竟然走不通,WTF,明明我身边有蓝牙耳机、蓝牙手环,我怀疑是不是权限的问题,然后又去查阅了官网 https://developer.android.com/guide/topics/connectivity/bluetooth?hl=zh-cn
<manifest ... >
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- If your app targets Android 9 or lower, you can declare
ACCESS_COARSE_LOCATION instead. -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
...
</manifest>
该加的我都加了还是扫不出蓝牙设备,于是我发了一个毒誓:不解决今晚不要恰饭,饿死自己算了!!!
最后终于找到原因,原来还要以动态权限的方式取得ACCESS_COARSE_LOCATION权限,可是官网也没写。果然有压力才有动力。
网友评论