哪个targetSDK用于BLE?

时间:2015-03-26 23:24:19

标签: android bluetooth-lowenergy target-sdk android-ble

我正在构建一个Android应用程序,该应用程序应该在每个具有蓝牙低功耗的设备上运行,这意味着minSDK为18.我不确定我应该使用哪个targetSDK。我在网上看到,最好始终使用最新版本(API 22)。是这种情况,还是应该用我支持的每个targetSDK构建我的应用程序,即使用SDK 18为运行API 18的应用程序构建,使用SDK 19为API 19构建,...?

我很困惑因为开始BLE发现我可以使用startScan()或startLeScan()。 Android文档告诉我:" startLeScan()在API级别21中已弃用,请改用startScan()"。我不确定这对我应该使用哪个targetSDK来编译我的应用程序有什么影响。如果我使用SDK 22编译并使用startScan(),运行API 18的设备是否能运行我的应用程序,如果我使用API​​ 18编译并使用startLeScan(),运行API 22的设备是否能够运行我的应用程序?或者我真的应该用我支持的每个targetSDK构建我的应用程序,如上所述?

2 个答案:

答案 0 :(得分:5)

我来帮你解答一下。

1)你已经知道minSDK应该是18(很酷)。因为LE支持在那之后或之后。

2)如果您使用目标sdk 18构建应用程序,它也适用于支持Android 5.0 / 5.1的设备。

3)如果您使用目标> sdk 21构建应用,并使用startLeScan代替startScan({/ 1}}在5.0 / sdk21中引入),它将适用于所有设备运行在> 18 api级别。

4)现在是棘手的部分,还有其他api可用于5.0+,在较低版本上缺失。我建议使用最新的sdk(目前为23)的目标构建应用程序。   i)使用不同的apis在不同版本中获得相同的结果。如果手机运行速度低于Android 5.0,请使用startScan,否则使用startLeScan。   ii)Android 5.0和5.1也存在差异,因此请相应地使用这些方法。

5)startScan之类的某些api 已弃用,但我知道,他们仍然在工作,因为他们已经将它们与新的api绑在一起了。所以在他们删除旧的api之前,他们将在所有平台上工作。这正是弃用意味着:)

回答你的问题“应该使用哪个目标sdk”回答是最新的sdk :),并根据SDK版本调用相应的apis。您可以通过startLeScan

在运行时获取SDK版本

答案 1 :(得分:1)

我建议使用Android 5.0及更高版本。为什么? This video非常清楚地表明" Android 5.0以下的BLE很糟糕"。