【发布时间】: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