2017-07-11 53 views
0

在使用Blutooth低能量時,我需要維持藍牙適配器。Android BLE BlutoothAdapter.enable();並呼籲意圖

最近我意識到它可以通過兩種不同的方式打開。

第一種方式:

BluetoothAdapter.getDefaultAdapter().enable(); 

第一次我tryed這個功能我想這需要root或某種特權工作。

其實我發現他們都不是必要的,這個功能在不同的設備上工作正常。

(三星S4棒棒糖,華碩Zenpad 8" MARSHMELLOW,魅族M2注棒棒糖)

方式二:

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

使用的意圖,你可以要求用戶打開藍牙。這個工作也很好,但你必須聽取意圖的結果。所以這需要更多的代碼,用戶可以決定不打開藍牙

D o在任何情況下都能正常工作?有一個「更好」的嗎?他們之間的真正區別是什麼?

回答

3

documentation

藍牙不應該沒有直接的用戶同意的情況下啓用。如果要打開藍牙以創建無線連接,則應使用ACTION_REQUEST_ENABLE Intent,這會引發一個請求用戶許可以打開藍牙的對話框。 enable()方法僅適用於包含用於更改系統設置的用戶界面的應用程序,例如「電源管理器」應用程序。

所以基本上使用Intent的原因只是一個很好的用戶體驗。因爲這個原因,我建議使用Intent

0

爲了在您的應用程序中使用BLE來在設備間接收和傳輸數據,我們必須啓用blutooth。

另一點是該設備支持BLE或不。

藍牙適配器需要做藍牙相關的東西。

如果在設備上未啓用blutooth,則要求用戶通過使用意圖啓用它並監聽意圖。所以這需要更多的代碼。

如果用戶不打開藍牙,我們不能做BLE相關的事情。

因此,要求設備上的藍牙適配器和藍牙和啓用方法爲更改系統設置提供用戶界面。