Tôi có một ứng dụng có nút trên đó tôi sử dụng để bật và tắt BT. Tôi có mã sau đây trong đó;Phát hiện các thay đổi trạng thái được thực hiện cho BluetoothAdapter?
public void buttonFlip(View view) {
flipBT();
buttonText(view);
}
public void buttonText(View view) {
Button buttonText = (Button) findViewById(R.id.button1);
if (mBluetoothAdapter.isEnabled() || (mBluetoothAdapter.a)) {
buttonText.setText(R.string.bluetooth_on);
} else {
buttonText.setText(R.string.bluetooth_off);
}
}
private void flipBT() {
if (mBluetoothAdapter.isEnabled()) {
mBluetoothAdapter.disable();
} else {
mBluetoothAdapter.enable();
}
}
Tôi đang gọi nút Flip, lật trạng thái BT, sau đó gọi ButtonText, cập nhật giao diện người dùng. Tuy nhiên, vấn đề tôi gặp phải là phải mất vài giây để BT bật - và trong những giây này, trạng thái BT không được bật, làm cho nút của tôi tắt Bluetooth, ngay cả khi nó sẽ bật sau 2 giây.
Tôi tìm thấy hằng số STATE_CONNECTING
trong tài liệu android BluetoothAdapter, nhưng ... Tôi chỉ đơn giản là không biết cách sử dụng nó, là một newbie và tất cả.
Vì vậy, tôi đã có hai câu hỏi:
- Có cách nào để tự động buộc một yếu tố giao diện người dùng (ví dụ như một nút hoặc hình ảnh) sang trạng thái BT, do đó khi thay đổi trạng thái BT, nút cũng sẽ thay đổi?
- Nếu không, tôi muốn nhấn nút và nhận trạng thái chính xác (Tôi muốn nói BT, ngay cả khi nó chỉ kết nối, vì nó sẽ được bật sau 2 giây). Làm thế nào để tôi làm điều này?
bạn không thể sử dụng một boolean và đặt nó vào đúng một lần BT bắt đầu bật, sau đó kiểm tra tình trạng boolean để thay đổi nút? –
Hãy xem mã AOSP này để có cảm nhận về cách họ theo dõi các thay đổi bật/tắt bluetooth: http://androidxref.com/5.1.0_r1/xref/frameworks/base/services/core/java/com/ android/server/BluetoothManagerService.java –