2016-11-22 32 views
0

我想檢查一個Android設備是否有藍牙,如果有,請使用它。我得的這個代碼如下兩件,想不通爲什麼我需要兩個(儘可能多的博客文章和文件建議):檢查BLE(藍牙低功耗)功能是否可用並試圖使用該功能並查看它是否失敗有什麼區別?

if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { 
    mState = State.Unsupported; 
    return; 
} 

mBluetoothManager = (BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE); 
if (mBluetoothManager == null) { 
    mState = State.Unsupported; 
    return; 
} 

做這些兩者都做同樣的事情(除了設置變量)還是有一些我不知道的細微之處?

回答

0

從Android文檔:

的Android 4.3(API等級18)推出內置藍牙低功耗平臺支持的核心作用,提供的API,應用程序可以用它來發現設備,查詢服務,和讀/寫特性。與傳統藍牙相比,藍牙低功耗(BLE)旨在顯着降低功耗。這允許Android應用程序與低功耗要求的BLE設備進行通信,例如接近傳感器,心率監測器,健身設備等。

正如您所見,藍牙和藍牙低功耗有一些明顯的差異。因此,如果您想使用低功耗藍牙,您應該檢查它是否可用,如同您對Classic Bluetooth所做的一樣。

0

藍牙是兩個不同的協議。您可能位於具有普通藍牙(3.x)但不支持藍牙LE的設備上。它也有可能是你可以在沒有藍牙的設備上。

Android Compatibility Definition Document:對於手機,藍牙和藍牙LE'應該'而不是'必須',以便它可能遇到沒有這種能力的設備。