Nim*_*myz 1 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构建我的应用程序,如上所述?
我来帮你解答一下.
1)你已经知道minSDK应该是18(酷).因为LE支持在那之后或之后.
2)如果您使用目标sdk 18构建应用程序,它也可以在支持Android 5.0/5.1的设备上运行.
3)如果您使用target> sdk 21构建应用程序,并使用startLeScan而不是startScan(startScan在5.0/sdk21中引入),它将适用于运行在> 18 api级别的所有设备.
4)现在是棘手的部分,还有其他apis可用于5.0+,在较低版本上缺少.我建议使用最新的sdk(目前为23)的目标构建应用程序.i)使用不同的apis在不同版本中获得相同的结果.就像手机运行低于Android 5.0一样,请使用startLeScan,否则startScan.ii)Android 5.0和5.1也有差异,因此请相应地使用这些方法.
5)有些apis startLeScan已被弃用,但我知道,他们仍在工作,因为他们已经将它们与新的api捆绑在一起.所以在他们删除旧的api之前,他们将在所有平台上工作.这正是弃用意味着:)
所以回答你的问题"应该使用哪个目标sdk",答案是最新的sdk :),并根据SDK版本调用相应的apis.您可以通过运行时获得SDK版本android.os.Build.VERSION.SDK_INT
| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |