如何在android

时间:2015-09-30 07:44:10

标签: android bluetooth bluetooth-lowenergy

我的项目涉及蓝牙低功耗。我扫描所有靠近的BLE设备并通过许多不同的图标显示在屏幕上。我没问题。但我想检查扫描不是BLE设备,我会显示一条消息"没有找到BLE设备"。我不知道检查NULL BLE设备。也许你知道!?

这里是我的一些代码:

    private BluetoothAdapter mBluetoothAdapter;
    final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
    mBluetoothAdapter = bluetoothManager.getAdapter();
    mBluetoothAdapter.startLeScan(mLeScanCallback);

    private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() {

    @Override
    public void onLeScan(final BluetoothDevice arg0, int arg1, byte[] arg2) {
        // TODO Auto-generated method stub
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                //TODO add device to screen

            });
        }
    };

2 个答案:

答案 0 :(得分:0)

https://developer.android.com/guide/topics/connectivity/bluetooth-le.html#find

根据Android文档,开发人员有责任在一定的时间间隔后停止Le扫描。

在扫描处于活动状态的时间间隔内,您可以跟踪onLeScan回调被触发的次数。如果它甚至没有被触发,则可以在Le Scan停止后显示您想要的任何错误消息。

答案 1 :(得分:0)

简单,请按照以下步骤操作。

1)运行BLE扫描一段时间。您可以使用postDelayed处理程序在一定时间后调用停止LE扫描,假设为10秒。

2)您必须在列表或某处添加找到的设备才能在UI上显示它。你说你正在为不同的设备显示不同的图标。

3)要检查您的进程dint是否找到任何设备,您可以检查图标集或设备列表大小。如果它为零,那么你就会找到任何东西。

或者您可以使用一些布尔标志,您可以在onLeScan方法中启用(true),这样您就会知道至少有一次调用它。

快乐编码。