0

我使用此代码启动蓝牙:

BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
if(btAdapter == null)
   returns; /no bluetooth
if(btAdapter.isEnabled() == false)
{  Toast("Bluetooth off. Starting it...");
   if(btAdapter.enable() == false)
      Toast("Error enabling bluetooth.");
}

应该很简单。只需获取和适配器,如果未启用,则启动它。

问题是当蓝牙实际打开时 isEnabled() 返回 false(它应该返回 true)并且调用 enable() 返回 false,因此它显示“启用蓝牙时出错”。我猜是因为它已经打开了。之后我的蓝牙符号(在状态栏中)消失了。有什么提示吗?

我当然有权限。

4

3 回答 3

3

确保您在清单文件中具有正确的权限

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
于 2012-06-15T15:49:05.197 回答
2

未经用户确认,您无法启用蓝牙。你需要这样做,

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if (mBluetoothAdapter != null) {
    // Device supports Bluetooth

    if (!mBluetoothAdapter.isEnabled()) {
        // Bluetooth isn't enabled, so enable it.
        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }
}

将出现一个对话框,请求用户允许启用蓝牙,如下所示。

在此处输入图像描述

如果用户回答“是”,系统将开始启用蓝牙,一旦该过程完成(或失败),焦点将返回到您的应用程序。

于 2012-06-15T16:24:24.203 回答
1

要检查蓝牙状态,以编程方式打开:

  1. 添加以下权限: -

    android.permission.BLUETOOTH

  2. 使用以下功能启用蓝牙:-

BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private void turnOn() {

   if (!mBluetoothAdapter.isEnabled()) {
        Intent enableBtIntent = new 
        Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivity(enableBtIntent);
    }

}
于 2018-01-17T11:02:11.420 回答