如何获取 Onyx ibeacons 的电池电量

How to get battery level of Onyx ibeacons

我正在使用 altbeacon library.And I use onyxBeacon ibeacons. I examine this and this post。但它对我不起作用。

public void onBeaconServiceConnect() {
    beaconManager.setRangeNotifier(new RangeNotifier() {
        @Override
        public void didRangeBeaconsInRegion(final Collection<Beacon> beacons, Region region) {               
            if (beacons.size() > 0) {                  
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        // MyCustomFunction();
                    }
                 });
            }

            for (Beacon b : beacons) { 
                long batteryLevel = b.getDataFields().get(0);
            }
        }
    });
}

'batterylevel' return 相同的值。 如何从信标获取电池​​电量?

没有标准的方法来获取 iBeacon 的电池电量。 Kontakt 等一些制造商在广播结束时将电池电量存储在一个额外的字节中,这是对于您引用的 post 为真。但是,这并不适用于所有制造商。

获取信息的另一种常见方式是使用专有的可连接蓝牙 LE 服务。目前尚不清楚您使用的信标是否具有此功能。即使他们这样做,您也需要能够从制造商处获得 public API 才能弄清楚如何去做。如果制造商不发布此信息,那么除非您可以自己进行逆向工程,否则您就不走运了。

同样,每个制造商都是不同的,因此您必须为每种信标类型找到不同的解决方案。