在安卓上检测蓝牙关闭的 altbeacon



我正在创建一个应用程序,作为Android开发人员的挑战,它使用altbeacons库读取ibeacons。

我能够识别UUID,主要,次要..但是在测试中要求在蓝牙关闭的情况下进行此读取,搜索但一无所获,不知何故可以做到这一点吗?

请帮助我,对不起我的英语。

谢谢!

我正在使用didRangeBeaconsInRegion来检测

public void onBeaconServiceConnect() {

beaconManager.removeAllMonitorNotifiers();
beaconManager.removeAllRangeNotifiers();
beaconManager.addRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.i(TAG, "my first beacon "
+ beacons.iterator().next().getId1() + " "
+ beacons.iterator().next().getId2() + " "
+ beacons.iterator().next().getId3());
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) {
}
}

让我们明确一点:如果蓝牙真的断电,绝对没有办法检测蓝牙信标.如果你仔细想想,这个问题甚至没有意义。 如何在无线电接收器关闭的情况下接收无线电信号?

这里唯一需要注意的是,当您将图标移动到关闭位置时,某些Android设备型号和操作系统版本上的快速面板蓝牙图标并没有真正关闭无线电 - 它仍然可用于扫描(信标检测所需的所有内容),但不适用于蓝牙LE连接或蓝牙经典配对。 但并非所有Android设备都以这种方式运行。 对于那些这样做的人,当它说蓝牙关闭时,指示器只是告诉你错误的事实。

我的例子:

@Override
public void onBeaconServiceConnect() {
beaconManager.addMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
Log.i(TAG, " enter region");
try {
beaconManager.startRangingBeaconsInRegion(region);
Log.i(TAG, "region beacon" + region.getId1() + " " + region.getId2() + " " + region.getId3());
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void didExitRegion(Region region) {
Log.i(TAG, "I no longer see an beacon");
try {
beaconManager.stopRangingBeaconsInRegion(region);
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
Log.i(TAG, "I have just switched from seeing/not seeing beacons: "+ state);
}
});

}

当我带着didRangeBeaconsInRegion进来时,我得到主要和次要

最新更新