Android BLE与BlutoothAdapter.enable()之间的区别;并呼吁一个意图

时间:2017-07-11 09:49:32

标签: android android-intent bluetooth

在使用Blutooth低能量时,我需要保持蓝牙适配器。

最近我意识到它可以通过两种不同的方式启用。

第一种方式:

BluetoothAdapter.getDefaultAdapter().enable();

我第一次尝试这个功能时,我认为这需要root或某种特权才能工作。

实际上我发现它们都不是必需的,这个功能在不同的设备上运行良好。

(三星S4棒棒糖,华硕Zenpad 8“Marshmellow,魅族M2 Note Lollipop)

第二种方式:

enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
startActivityForResult(enableBtIntent, ENABLE_BLUETOOTH_INTENT); 

通过使用意图,您可以要求用户打开蓝牙。这个也很好,但你必须听取意图结果。因此,这需要更多代码,用户可以决定不打开蓝牙。

他们在任何情况下都能正常工作吗?有一个“更好”的吗?它们之间真正的区别是什么?

2 个答案:

答案 0 :(得分:3)

根据documentation

  

未经用户同意,不得启用蓝牙。如果要打开蓝牙以创建无线连接,则应使用ACTION_REQUEST_ENABLE Intent,这将引发一个请求用户打开蓝牙权限的对话框。 enable()方法仅适用于包含用于更改系统设置的用户界面的应用程序,例如"电源管理器"应用

所以基本上使用Intent的原因只是一个很好的用户体验。因为这个原因,我建议使用Intent

答案 1 :(得分:2)

为了在您的应用程序中使用BLE在设备之间接收和传输数据,我们必须启用blutooth。

另一点是设备是否支持BLE。

执行与蓝牙相关的东西需要蓝牙适配器。

如果设备上未启用blutooth,则要求用户使用intent启用它并侦听意图。所以需要更多的代码。

如果用户不打开蓝牙,我们就无法做与BLE相关的事情。

因此,在设备上需要蓝牙适配器和蓝牙,启用方法提供用户界面来更改系统设置。