web-dev-qa-db-ja.com

Android KitKatを使用すると、Bluetooth LEをサポートするデバイスを周辺機器として機能させることができますか?

Android 4.3まで、Android Bluetooth LowEnergyをサポートするデバイスは中央デバイスとしてのみ機能できます。 Android 4.3 Bluetooth LE ドキュメント:

Android 4.3(APIレベル18)は、中央の役割でBluetooth Low Energyの組み込みプラットフォームサポートを導入し、アプリがデバイスを検出するために使用できるAPIを提供します。サービスのクエリ、および読み取り/書き込み特性。

Android 4.4 KitKat の導入により、周辺機器としても動作できるようになりましたか?そのドキュメントは見つかりませんでした。そうでない場合は、Android 4.5がAndroidデバイスでBTLEペリフェラルモードを取得するのを待つ必要がありますか?または、= Androidデバイスを周辺機器として機能させることができますか?

15
Shobhit Puri

答えてくれてありがとう。更新するだけで、2014年6月の時点で、Android L開発者プレビューで提供されています。Android L公式リリース。彼らのブログから Androidの新機能:L DeveloperPreviewとGooglePlay Services 5.

L Developer Previewを使用すると、Androidの次のバージョンの新機能の多くを探索でき、新しいプラットフォームでの開発とテストを開始するために必要なすべてを提供します。開発者向けのハイライトのいくつかを次に示します。

BLEペリフェラルモード— AndroidデバイスはBluetoothLow Energy(BLE)で機能できるようになりました周辺機器モード。アプリはこの機能を使用して、近くのデバイスにその存在をブロードキャストできます。たとえば、デバイスを歩数計またはヘルスモニターとして機能させ、データを送信できるアプリを構築できるようになりました。別のBLEデバイスに。

更新:

悪いニュースは、BLEペリフェラルモードが新しいAndroidデバイス(日付による)、つまりNexus6とNexus9)でのみ機能することです。Nexus4/ Nexus5では機能しません。/nexus 7/nexus10に更新してもAndroid 5.0。Android)のいずれかで コメント を読むことができますプロジェクトマネージャー BLEアドバタイズモードが機能しない チケット。彼は言います:

Android 5.0LollipopでBLEペリフェラルモードを導入しました。Nexus6とNexus9は、BLEペリフェラルモードをサポートする最初の2つの製品版Nexusデバイスです。ハードウェアチップセットの依存関係により、古いNexusデバイス(4/5/7)Lollipopの機能にアクセスできなくなります。

11
Shobhit Puri

このバージョンにはありませんが、まもなく登場するという証拠があります。
Android-19ソースのBluetoothGatt.Javaを見ると、Android-18にはなかった新しいメソッドlistensetAdvDataがあります。
ただし、ネイティブサポートはまだ完了していないと思うため、これらは文書化されていません。周辺機器モードのAOSPでの最後のチェックインは、「LE:周辺機器の役割のサポートの追加(2/4)」というタイトルでした。また、setAdvDatalistenのコードは次のとおりです。

if (mContext == null || !mContext.getResources().getBoolean(com.Android.internal.R.bool.config_bluetooth_le_peripheral_mode_supported))
{
    throw new UnsupportedOperationException("BluetoothGatt#listen is blocked");
}

AndroidソースからAndroid/platform_frameworks_base/blob/master/core/res/res/values/config.xmlを見ると、これは現在無効になっていることがわかります。

<!-- Boolean indicating if current platform supports BLE peripheral mode -->
<bool name="config_bluetooth_le_peripheral_mode_supported">false</bool>
17
madeyes

http://developer.Android.com/sdk/api_diff/19/changes.html

完全なAPIの違いを見ると、簡単に言えば答えは:いいえ

==============

周辺機器の役割のサポートを追加するには、手を汚してOSレベルでBluedroidスタックをカスタマイズするか、XDA開発者に運試しをして誰かがこれを行ったことがあるかどうかを確認する必要があります。現在のAndroid電話はハードウェアレベルで周辺機器の役割をサポートしていますが、わかりません。

7
reTs