蓝牙低功耗
协议
角色和职责
- 中央与外围。这适用于 BLE 连接本身。担任中央角色的设备进行扫描、寻找广播;外围设备发出广播。
- GATT 服务器与 GATT 客户端。这确定两个设备建立连接后如何相互通信。
权限
<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" />
如果您要声明您的应用仅适用于支持 BLE 的设备,请在应用清单中添加以下内容:
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
如果您希望应用适用于不支持 BLE 的设备,则您应仍将此元素添加到应用清单中,但设置 required="false"
。然后您可以在运行时使用 PackageManager.hasSystemFeature()
确定 BLE 的可用性:
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
Toast.makeText(this, R.string.ble_not_supported, Toast.LENGTH_SHORT).show();
finish();
}
ble蓝牙信号强度rssi
Received Signal Strength Indicator , 接收的信号强度指示 , 单位是dbm , 无线发送层的可选部分 , 用来判定链接质量,以及是否增大广播发送强度。
一般为负值,反映的是信号的衰减程度,理想状态下(无衰减)Rssi值为0dBm,实际情况是,即使蓝牙设备挨得非常近,Rssi也只有-50dBm的强度,在传输过程中,不可避免要损耗。
一般情况下,经典蓝牙强度
信号强 0dBm ~ -50dBm 信号中 -50dBm ~ -70dBm 信号弱 -70dBm ~ dBm
-
Android中BLE蓝牙获取RSSI
Android平台中,通过蓝牙设备扫描回调和蓝牙设备连接监听两种方式可以获取到每个蓝牙设备的RSSI。
-
测距理论
通过接收到的信号强弱测定信号点与接收点的距离,进而根据相应数据进行定位计算的一种定位技术。