gpt4 book ai didi

android - Android蓝牙低功耗回调(LeScanCallBack)在单独的线程上?

转载 作者:行者123 更新时间:2023-12-03 13:11:51 36 4
gpt4 key购买 nike

我正在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类?

最佳答案

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();
}
};

关于android - Android蓝牙低功耗回调(LeScanCallBack)在单独的线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29429321/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com