1

Bluetooth Low Energy を搭載したすべてのデバイスで実行される Android アプリを構築しています。つまり、minSDK は 18 です。ただし、どの targetSDK を使用すればよいかわかりません。これには常に最新バージョン(API 22)を使用することをお勧めします。それとも、サポートしているすべての targetSDK を使用してアプリケーションをビルドする必要がありますか。つまり、API 18 を実行するアプリケーションには SDK 18 を使用してビルドし、API 19 を使用するデバイスには SDK 19 を使用してビルドする必要がありますか?

BLE 検出を開始するには、startScan() または startLeScan() のいずれかを使用できるため、混乱しています。Android のドキュメントには、「startLeScan() は API レベル 21 で廃止されました。代わりに startScan() を使用してください」と書かれています。アプリのコンパイルに使用する targetSDK にこれがどのような影響を与えるかはわかりません。SDK 22 でコンパイルして startScan() を使用すると、API 18 を実行しているデバイスでアプリを実行できますか? また、API 18 でコンパイルして startLeScan() を使用すると、API 22 を実行しているデバイスでアプリを実行できますか? それとも、上記のようにサポートするすべての targetSDK を使用してアプリケーションをビルドする必要がありますか?

4

2 に答える 2

5

これに答えさせてください。

minSDK1) 18 歳 (クール) であることはすでにわかっています。LE のサポートはその後にあります。

2) ターゲット SDK 18 を使用してアプリをビルドすると、Android 5.0/5.1 をサポートするデバイスでも動作します。

3) ターゲット >sdk 21 を使用してアプリをビルドし、startLeScan代わりにstartScan(startScanは 5.0/sdk21 で導入されました) を使用すると、18 以上の API レベルで実行されているすべてのデバイスで動作します。

4) ここで注意が必要なのは、5.0 以降で使用できる他の A​​PI もありますが、これらは以前のバージョンにはありませんでした。最新の SDK (現在 23) のターゲットを使用してアプリをビルドすることをお勧めします。i) 異なる API を使用して、異なるバージョンで同じ結果を得る。Android 5.0 未満で実行されている電話の場合と同様に、startLeScan, elseを使用しますstartScan。ii) Android 5.0 と 5.1 にも違いがありますので、そちらの方法をご利用ください。

5) のようないくつかの APIstartLeScan非推奨ですが、新しい API と結び付けられているため、それらはまだ機能しています。そのため、古い API が削除されるまでは、すべてのプラットフォームで動作します。これはまさに非推奨の意味です:)

したがって、「どのターゲットSDKを使用する必要がありますか」という質問の答え、答えは最新のSDKです:)、SDKバージョンに基づいてそれぞれのAPIを呼び出します。実行時にSDKバージョンを取得できますandroid.os.Build.VERSION.SDK_INT

于 2015-03-27T04:04:53.617 に答える
1

Android 5.0 以降を使用することをお勧めします。なんで?このビデオでは、「5.0 未満の Android の BLE はくだらない」とはっきりと述べています。

于 2015-03-30T06:43:35.423 に答える