我使用此代码启动蓝牙:
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.");
}
应该很简单。只是获取和适配器,如果它没有启用,那么我启动它。
问题是,当蓝牙实际上为ON时,isEnabled()返回false(它应该返回true)并且调用enable()会返回false,因此它显示“启用蓝牙错误”。我想因为它已经开启了。之后我的蓝牙符号(在状态栏中)消失了。 任何提示?
当然我有权限。
答案 0 :(得分:3)
确保您在清单文件中具有正确的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
答案 1 :(得分: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);
}
}
将出现一个对话框,要求用户启用蓝牙权限,如下所示。
如果用户回答“是”,系统将开始启用蓝牙,一旦过程完成(或失败),焦点将返回到您的应用程序。
答案 2 :(得分:1)
要以编程方式检查蓝牙状态:
添加以下权限: -
android.permission.BLUETOOTH
使用以下功能启用BLUETOOTH: -
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
private void turnOn() {
if (!mBluetoothAdapter.isEnabled()) {
Intent enableBtIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(enableBtIntent);
}
}