蓝牙LE扫描

时间:2014-07-04 07:32:10

标签: android bluetooth bluetooth-lowenergy

我正在开发一个演示应用程序来扫描Blutooth Le设备。但startLeScan()返回null。我没有得到任何设备名称。我试过使用普通扫描它显示正常。我在这里添加我的代码段

private void scanLeDevice(final boolean enable) {
        if (enable) {
            // Stops scanning after a pre-defined scan period.
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    mScanning = false;
                    mTxtInfo.setText("Stopped Scanning.");
                    mBluetoothAdapter.stopLeScan(mLeScanCallback);
                }
            }, SCAN_PERIOD);

            mScanning = true;
            mTxtInfo.setText("Started Scanning...");
            mBluetoothAdapter.startLeScan(mLeScanCallback);
        } else {
            mTxtInfo.setText("Stopped Scanning.");
            mScanning = false;
            mBluetoothAdapter.stopLeScan(mLeScanCallback);
        }

    }

这是我开始Le扫描的功能。

// Device scan callback.
    private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {
        @Override
        public void onLeScan(final BluetoothDevice device, int rssi,
                byte[] scanRecord) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {

                    mTxtInfo.setText("Detected devices: " + device.getName());
                    Toast.makeText(MainActivity.this,
                            "Detected devices: " + device.getName(),
                            Toast.LENGTH_LONG).show();
                }
            });
        }


    };

这是回调。它向我展示了

07-04 12:50:17.833: D/BluetoothAdapter(3564): startLeScan(): null

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

问题是您正在尝试使用

startLeScan(callback) 

不设置Uuid参数。因此,BluetoothAdapter代码可以执行以下操作:

startLeScan(null, callback) 
背面

并打印

"startLeScan:" + Uuid. 

对你而言是空的。