4

我想检查是否在使用 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

4 回答 4

20

这对我来说效果最好:

/**
 * 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;
}
于 2014-01-09T01:25:07.843 回答
6

尝试这个。

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" />
于 2012-06-28T10:25:34.750 回答
3

Jared Burrows 的答案似乎是正确的,但是我必须在它开始工作之前添加一个附加项。我必须检查蓝牙状态。

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

    return (bluetoothAdapter != null &&
            bluetoothAdapter.isEnabled() &&
            bluetoothAdapter.getState() == BluetoothAdapter.STATE_ON);
}
于 2017-08-17T08:52:47.810 回答
0

为什么不只是:

...
return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled();
于 2014-09-02T14:34:43.203 回答