我读了这个Issue。
我想制作一个示例应用,以便在不连接它的情况下读取应用范围附近的所有BLE设备rssi。
我创造了STICKY服务&访问设备扫描结果附近。
BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(SmartIDService.this.BLUETOOTH_SERVICE);
mBluetoothAdapter = mBluetoothManager.getAdapter();
//Start Scan.
mBluetoothAdapter.startLeScan(mLeScanCallback);
//Listen scan Resul.
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback()
{
@Override
public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord)
{
AppLogger.showDebugLog(TAG + "rssi: " +rssi);
}
};
我得到了我想要的结果,但如果BLE设备超出范围一段时间我再也无法得到结果。
我认为startLeScan()是从内存中删除的,所以我创建了一个警报服务来唤醒mBluetoothAdapter.startLeScan(mLeScanCallback);
一段时间间隔&问题已解决。
但我找不到实际的时间间隔,我将唤醒alaram服务。
任何解决方案!!!
每个设备的想法时间间隔?
还有其他过程吗?
请指导我