Итак, я взломал голову, как проверить текущее состояние обнаружения Bluetooth. Я хочу иметь дело с простой проблемой: Когда пользователь начинает обнаружение Bluetooth на устройстве, нажав кнопку, он открывает журнал с разрешением, позволяющим обнаруживать Bluetooth. Когда пользователь соглашается, он включен, а другая кнопка включена. Но когда пользователь это отрицает, следующая кнопка всегда включена, а предыдущая становится недоступной.Проверить текущее состояние обнаружения Bluetooth
Какие изменения я должен внести в свой код, чтобы включить запуск кнопки дисковой совместимости снова, когда пользователь отказывает в обнаружении Bluetooth-устройства?
Можно ли вернуть текущее состояние к некоторой переменной? Если да, то как?
Я пытался использовать некоторые переменные, которые зависели от BTDiscoverable(); но без везения.
Я проверил этот Android SDK documentation, но говорится только о включении, выключении или проверке текущего состояния.
public void onClick(View v) {
Button bttn = (Button) v;
if(bttn.getId() == R.id.bt_server_start)
{
/*
* If BluetoothAdapter name does not start with BT_ prefix, add it to the name, then proceed
*/
if (!mBluetoothAdapter.getName().startsWith(PREFIX))
mBluetoothAdapter.setName(PREFIX + mBluetoothAdapter.getName());
/*
* Check the connectability/discoverability, compare to the statemanet made by user that it is enabled.
* If they are not equal, run BTDiscoverable method - set device to be discoverable by other devices
*/
if(mBluetoothAdapter.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)
BTDiscoverable();
/*
* As the bluetooth is now on and the device can be connected/discovered, USER MUST START THE SERVER SITE ON DEVICE BY
* CREATING NEW THREAD
*/
DeviceServer = new AcceptThread();
/*
* Start the thread
*/
DeviceServer.start();
/*
* Set the availability of the button
*/
bttn.setEnabled(false);
((Button) this.findViewById(R.id.bt_server_stop)).setEnabled(true);
} else if (bttn.getId() == R.id.bt_server_stop)
{
DeviceServer.cancel();
bttn.setEnabled(false);
((Button) this.findViewById(R.id.bt_server_start)).setEnabled(true);
BTDeviceName();
}
}
EDIT: Ну, использование этой команды снова дает результат, который я ожидал.
if(mBluetoothAdapter.getScanMode()==BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE)