gpt4 book ai didi

android - BLE 使用哪个 targetSDK?

转载 作者:行者123 更新时间:2023-11-29 14:47:51 25 4
gpt4 key购买 nike

我正在构建一个 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(cool)。因为 LE 支持在那个时候或之后。

2) 如果您使用目标 sdk 18 构建您的应用程序,它也可以在支持 Android 5.0/5.1 的设备上运行。

3) 如果您使用 target >sdk 21 构建您的应用程序,并使用 startLeScan 而不是 startScan(startScan 是在 5.0/sdk21),它将适用于运行 >18 api 级别的所有设备。

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

5) startLeScan 等一些 api 已弃用,但我知道,它们仍在工作,因为它们已将它们与新的 api bundle 在一起。所以在他们删除旧的 api 之前,它们将在所有平台上工作。这正是弃用的意思:)

所以回答你的问题“应该使用哪个目标 sdk”答案是最新的 sdk :),并根据 SDK 版本调用相应的 api。您可以通过 android.os.Build.VERSION.SDK_INT

在运行时获取 SDK 版本

关于android - BLE 使用哪个 targetSDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29290685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com