在使用Blutooth低能量时,我需要保持蓝牙适配器。
最近我意识到它可以通过两种不同的方式启用。
第一种方式:
BluetoothAdapter.getDefaultAdapter().enable();
我第一次尝试这个功能时,我认为这需要root或某种特权才能工作。
实际上我发现它们都不是必需的,这个功能在不同的设备上运行良好。
(三星S4棒棒糖,华硕Zenpad 8“Marshmellow,魅族M2 Note Lollipop)
第二种方式:
enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, ENABLE_BLUETOOTH_INTENT);
通过使用意图,您可以要求用户打开蓝牙。这个也很好,但你必须听取意图结果。因此,这需要更多代码,用户可以决定不打开蓝牙。
他们在任何情况下都能正常工作吗?有一个“更好”的吗?它们之间真正的区别是什么?
答案 0 :(得分:3)
未经用户同意,不得启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用ACTION_REQUEST_ENABLE Intent,这将引发一个请求用户打开蓝牙权限的对话框。 enable()方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如"电源管理器"应用
所以基本上使用Intent
的原因只是一个很好的用户体验。因为这个原因,我建议使用Intent
。
答案 1 :(得分:2)
为了在您的应用程序中使用BLE在设备之间接收和传输数据,我们必须启用blutooth。
另一点是设备是否支持BLE。
执行与蓝牙相关的东西需要蓝牙适配器。
如果设备上未启用blutooth,则要求用户使用intent启用它并侦听意图。所以需要更多的代码。
如果用户不打开蓝牙,我们就无法做与BLE相关的事情。
因此,在设备上需要蓝牙适配器和蓝牙,启用方法提供用户界面来更改系统设置。