Проверьте, включен ли Bluetooth с помощью приложения Android

Я хочу проверить, включен ли Bluetooth на устройстве с помощью приложения Android. Я использовал метод .isEnabled. Но есть ошибка. Я выяснил (комментируя строки), что ошибка в методе .isEnabled. Можете ли вы помочь мне выяснить это?

final BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();

submitButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String status = "Bluetooth";

        if(bluetooth != null) {
            if (bluetooth.isEnabled()) {
                String mydeviceaddress = bluetooth.getAddress();
                String mydevicename = bluetooth.getName();
                status = ("Address "+ mydeviceaddress + " Name" + mydevicename);
                Toast.makeText(getApplicationContext(), "" + status + "", Toast.LENGTH_LONG).show();
            } else {
                status = ("Bluetooth not enabled");
                Toast.makeText(getApplicationContext(), "" + status + "", Toast.LENGTH_LONG).show();
            }
        } else {
            Toast.makeText(getApplicationContext(), "" + status + "", Toast.LENGTH_LONG).show();
        }
    }
}

Ответы на вопрос(4)

...
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled();

/**
 * Check for Bluetooth.
 *
 * @return true if Bluetooth is available.
 */
public boolean isBluetoothAvailable() {
    final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    return bluetoothAdapter != null 
        && bluetoothAdapter.isEnabled() 
        && bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON;
}
 01 мая 2014 г., 07:28
спасибо, что поделились им оптимальным образом ... #makesense
 16 апр. 2015 г., 15:27
@hmartinezd Хороший глаз. Это сейчас исправлено.
 16 апр. 2015 г., 15:17
Только одно, почему этот метод принимает объект Context, а на самом деле его вообще нет?

однако мне пришлось добавить одно дополнение, прежде чем оно начало работать. Я должен был проверить состояние Bluetooth.

public static boolean isBluetoothAvailable() {
    final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

    return (bluetoothAdapter != null &&
            bluetoothAdapter.isEnabled() &&
            bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON);
}

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
if (bluetoothAdapter == null) {
    // Device does not support Bluetooth
} else {
    if (!bluetoothAdapter.isEnabled()) {
        // Bluetooth is not enabled
    }
}

в вашемAndroidManifest.xml File добавлять

<uses-permission android:name="android.permission.BLUETOOTH" />
 Saku28 июн. 2012 г., 12:47
Я только что попробовал. Но это тоже не работает :(
 Saku28 июн. 2012 г., 13:24
A 'Force Close' появляется. Так как эмулятор не поддерживает Bluetooth, я попробовал на реальной вкладке. Поэтому я не могу дать точные исключения или сообщения об ошибках
 28 июн. 2012 г., 12:51
@ Саку, какие ошибки? обновите свой пост и поместите детали ошибки.
 16 янв. 2013 г., 02:20
Если разрешение Bluetooth требуется только для этого обнаружения, не забудьте установить его НЕ обязательно: & lt; Использовать функцию android: name = & android.hardware.bluetooth & quot; Android: требуется = & Quot; ложно & Quot; / & GT;
 29 июн. 2012 г., 05:13
@Saku Записать файл журнала и отслеживать сообщения об ошибках. тогда вы можете море ошибок произошло.

Ваш ответ на вопрос