Android 如何检查蓝牙Le设备的设备发现和未发现

Android 如何检查蓝牙Le设备的设备发现和未发现,android,bluetooth,bluetooth-lowenergy,Android,Bluetooth,Bluetooth Lowenergy,我正在开发Android应用程序,列出发现的蓝牙LE设备 我正在使用以下代码扫描可扩展设备 BluetoothManager mBta = ((BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter(); SNFBluetoothAdapter mSNFBluetoothAdapter=new SNFBluetoothAdapter(MainActivity.this); mBt

我正在开发Android应用程序,列出发现的蓝牙LE设备

我正在使用以下代码扫描可扩展设备

    BluetoothManager mBta = ((BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE)).getAdapter();
    SNFBluetoothAdapter mSNFBluetoothAdapter=new SNFBluetoothAdapter(MainActivity.this);

    mBta.startLeScan(mSNFBluetoothAdapter);
使用此方法,我可以扫描范围内的蓝牙设备

    onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord)
但现在我的问题是, 如何检查设备是否超出蓝牙范围并更新设备列表? 请帮忙


对不起,我的语言不好。

您可以使用多个开发人员sdk。检查Radius网络信标和估计信标。Estimote descovers仅用于Estimote信标。信标根据您的要求具有接近功能,当您进入/离开该区域时,信标可以通知您

方法
仅扫描(最终BluetoothDevice设备,int rssi,byte[]scanRecord)
始终运行,除非您停止此过程

因此,如果
设备超出蓝牙范围,它将自动消失


不用担心。

最后我用定时器刷新了列表


在一段特定时间后,重置列表数据并重新蚀刻DeviceList,以便它将获取范围内设备的新列表。

问题不特定于“信标”此外,SO更喜欢提供独立解释的答案,而不仅仅是指向另一个地方。你可以看到以前发现的东西是否在合理的尝试次数后没有被再次发现。rssi降低也可能是一个线索。您可能需要根据应用程序的需要调整决策。@Alex Tran。我正在管理设备的ArrayList并在ListView中显示它。只有当设备在蓝牙范围内时,onLeScan(最终蓝牙设备,int rssi,byte[]扫描记录)才会调用。所以在onLeScan方法中,我将设备添加到我的列表中。因此,如果设备超出范围,我必须从列表中删除设备,因此使用此方法是不可能的。尝试代码,如果可能,请描述。