Android上的连续蓝牙LE信号强度
有人能建议如何在Android API级别18+上持续读取BT4-LE信号强度,以检测与BT-LE信标的相对接近程度吗?我知道扫描过程中会返回LE无线电信号强度(请参阅:),但一旦扫描完成并建立连接,是否仍可以在不重新扫描的情况下获得更新的BT-LE信号强度? 异步调用以开始读取信号强度 读取完成后回调Android上的连续蓝牙LE信号强度,android,bluetooth,bluetooth-lowenergy,Android,Bluetooth,Bluetooth Lowenergy,有人能建议如何在Android API级别18+上持续读取BT4-LE信号强度,以检测与BT-LE信标的相对接近程度吗?我知道扫描过程中会返回LE无线电信号强度(请参阅:),但一旦扫描完成并建立连接,是否仍可以在不重新扫描的情况下获得更新的BT-LE信号强度? 异步调用以开始读取信号强度 读取完成后回调 在读取之前需要连接。在调用readRemoteRssi()读取信号强度之前需要连接。 示例代码: private final BluetoothGattCallback mGattCallba
在读取之前需要连接。在调用readRemoteRssi()读取信号强度之前需要连接。 示例代码:
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status,
int newState) {
// TODO Auto-generated method stub
String intentAction;
if(newState == BluetoothProfile.STATE_CONNECTED) {
intentAction = ACTION_GATT_CONNECTED;
mConnectionState = STATE_CONNECTED;
mBluetoothGatt.readRemoteRssi();
if(newState == BluetoothProfile.STATE_CONNECTED)
{
TimerTask task = new TimerTask()
{
@Override
public void run()
{
mBluetoothGatt.readRemoteRssi();
}
};
Timer rssiTimer = new Timer();
rssiTimer.schedule(task, 1000, 1000);
}