在Android SDK中接收BLE广播(ADV_NONCONN_IND)数据包

时间:2016-12-31 18:10:13

标签: android bluetooth-lowenergy

我正在尝试在我的Android应用程序中捕获BLE广播(ADV_NONCONN_IND)数据包。但是我无法收到任何数据包。

我知道我的外围设备正在发送数据包,因为我有另一个可以看到所有数据包的BLE捕获设备。但是,手机内的应用程序看不到任何BLE数据包。

我的应用可以查看其他数据包,例如ADV_SCAN_ID但不包含ADV_NONCONN_IND(广播)数据包。

public void uploadScanBytes(SensorDataUploader sensorDataUploader, int count) {
        BluetoothAdapter btAdapter = getBluetoothAdapter();
        if (btAdapter == null) return;

        BluetoothLeScanner scanner = btAdapter.getBluetoothLeScanner();
        ScanSettings settings = new ScanSettings.Builder()
                .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
                .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
                .build();
        scanner.startScan(Collections.<ScanFilter>emptyList(), settings, new LimitedScanRecordReader(sensorDataUploader, count, scanner));
    }


public void onScanResult(int callbackType, ScanResult result) {

   if(result.getDevice().getAddress().equals("00:AB:2c:A1:E2:F1")) {
       long timestamp = System.currentTimeMillis() -   SystemClock.elapsedRealtime() +
                        result.getTimestampNanos() / 1000000;
                byte[] rawBytes = result.getScanRecord().getBytes();
                Log.i(DataTransferService.class.getName(), "Raw bytes: " + byteArrayToHex(rawBytes));
                sensorDataUploader.upload(timestamp, rawBytes);
            }
}

请让我知道我错过了什么。 提前致谢

0 个答案:

没有答案
相关问题