三星S6 BLE无法扫描

时间:2016-10-10 00:56:28

标签: android bluetooth-lowenergy samsung-mobile

我正在开发具有BLE通信功能的Android应用。 它只是扫描设备,一旦我找到具有特定名称的设备,我就会在应用程序中触发流程。 为此,我正在做以下事情:

1)启动扫描仪并使用SCAN_MODE_LOW_LATENCY(并且没有过滤器)开始扫描

BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter  mBluetoothAdapter = bluetoothManager.getAdapter()
BluetoothLeScanner mLEScanner = mBluetoothAdapter.getBluetoothLeScanner();
ScanSettings scanSettings = new ScanSettings.Builder().setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).build();
mLEScanner.startScan(null,scanSettings,this.scanCallback);

2)这是scanCallback:

private ScanCallback scanCallback = new ScanCallback() {
    @Override
    public void onScanResult(int callbackType, final ScanResult result) {
        super.onScanResult(callbackType, result);
        //Do logic
    }

    @Override
    public void onScanFailed(int errorCode) {
        super.onScanFailed(errorCode);
        Log(R.string.ble_log_scanning_failed,String.valueOf(errorCode));
        }
};

问题

以上代码适用于我在三星Galaxy S6上测试过的所有设备。

在S6上它可以工作50%。但有时手机会停止响应任何BLE设备。永远不会调用回调(不成功也不失败)。这就像设备由于某种原因停止扫描。我试图让它每分钟开始扫描只是为了测试而且它不起作用。一旦停止,它就会停止运行(有时重新启动手机可以解决问题,但并非总是如此)

知道这个问题可能是什么原因?有人遇到过类似的问题吗?

编辑:回答评论: Android版本6.0.1 每次成功扫描后,我停止扫描,执行逻辑,然后再次开始扫描。

由于

0 个答案:

没有答案