【问题标题】:Android Bluetooth Low Energy Callback(LeScanCallBack) on seperate thread?Android蓝牙低功耗回调(Le ScanCallBack)在单独的线程上?
【发布时间】:2015-04-03 09:12:48
【问题描述】:

我正在 MainActivity 中启动低功耗蓝牙扫描:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BLEScanner.start(bluetoothManager.getAdapter());
    }
}

(静态)BLEScanner 类如下:

public class BLEScanner {    
    public static void start(final BluetoothAdapter bluetoothAdapter) {
        bluetoothAdapter.startLeScan(mLeScanCallback);
    }

    private static BluetoothAdapter.LeScanCallback mLeScanCallback =
            new BluetoothAdapter.LeScanCallback() {
                @Override
                public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
                    String name = device.getName();
                    String address = device.getAddress();
                    Log.d("BLESCANNER", name+" "+address);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            };
}

BLEScanner 中的 Thread.sleep() 导致 UIThread 无响应。如何在单独的类中运行 BLEScanner 类?

【问题讨论】:

    标签: android multithreading bluetooth callback


    【解决方案1】:
    private BluetoothAdapter.LeScanCallback mLeScanCallback =
            new BluetoothAdapter.LeScanCallback() {
                @Override
                public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            //The code here is executed on on new thread everytime 
                            Log.e("LeScanCallback", Thread.currentThread().getName());//Prints Thread-xxxx
                        }
                    }).start();
                }
            };
    

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多