1

Androidでbleデバイス(ビーコン)を使用して屋内位置システムを実行しようとしています。プログラムの開始時に最も近いビーコンを見つけます。ビーコンの位置の変化を数秒で検出しますが、数秒後に変化に反応するのが遅すぎます。

今、私はビーコンのIDのみを出力します(私はこのIDを与えました)

問題はメモリに関するものだと思います。何が問題なのですか?

LeScanCallback と Handler 関数:

@Override
    public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) {
        List<AdRecord> records = AdRecord.parseScanRecord(scanRecord);
        beaconScan = new BluetoothBeacon(records, device.getAddress(), rssi);
        mHandler.sendMessage(Message.obtain(null, 0, beaconScan));

    }

    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {

            beaconHandler = (BluetoothBeacon) msg.obj;
            mBeacons.put(beaconHandler.getAddress(), beaconHandler);

            rssiVal =  getRssiString(beaconHandler);
            dbHelper.insertDevice(beaconHandler.getName(), beaconHandler.getAddress(),
                    rangeValue,rssiVal,currentTime);
            rssiID = model.findNear(beaconHandler.getAddress(),beaconHandler.getSignal());
            Log.i("id", "Nearest beacon id: " + rssiID);

        }
    };
4

1 に答える 1