19

4.3 の新しい BTLE API を使用して、Nexus 7 に BTLE SERVER を実装しようとしています。私はいくつかの問題に直面しています。まず、SDK にはサンプルがありません。唯一の例はクライアントです。第二に、ドキュメントは実際に間違ったことをするように言っています。BluetoothAdapter.getProfileProxy() with a BluetoothProfile.GATT_SERVERオブジェクトを取得するには、パラメーターを使用する必要があると述べていBluetoothGattServerます。BluetoothGattServerCallbackこのアプローチは機能しますが、実装をBLE スタックにリンクすることはできません。(このコールバックは、特にクライアントの読み取りおよび書き込み要求に応答する方法です。) しかし、問題 58582 につまずいた後、開発者BluetoothManager.openGattServer()は、コールバックをパラメーターとして取り、BluetoothGattServerオブジェクトを返す新しいメソッドを指摘しました。さて、問題が一つ解決しました。

次の問題はもっと問題です。BluetoothGattServerドキュメントには、このクラスを使用して Bluetooth LE サービスと特性を作成およびアドバタイズできると記載されています。サービスの作成などは問題ありませんでしたが、広告の開始方法については言及していません。クラス自体または私が見つけることができる他のクラスにはメソッドがありません。

誰もこれを行う方法を知っていますか? 現時点で私が確認できるのは、クライアントが使用するのと同じアプローチを使用することだけですが、そのアプローチにはスキャン (広告ではありません) が含まれます。BluetoothAdapter.startLeScan()すべてのドキュメントはさらに、 IS が実際にスキャンに適していることを示唆しています。

では、すべてのサービス、特性、および記述子が整ったら、どのように広告を呼び出すのでしょうか?

4

4 に答える 4

12

API レベル 21 が必要です。

import android.bluetooth.le;
...
...
BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter myBluetoothAdapter = bluetoothManager.getAdapter();
BluetoothLeAdvertiser myBluetoothLeAdvertiser =  myBluetoothAdapter.getBluetoothLeAdvertiser ();
myBluetoothLeAdvertiser.startAdvertising (AdvertiseSettings settings, AdvertiseData advertiseData, AdvertiseCallback callback);

便利なリンクは次のとおりです: https://developer.android.com/about/versions/android-5.0.html

于 2014-12-15T19:31:26.687 に答える
1

私が見ているように、BLE アドバタイジング機能 (別名ペリフェラル モード) は、Kitkat の次期バージョン 4.4.3 で Android に追加されます。来週リリースされるはずですが、変更ログが誤って既にリークされています。Google キャッシュまたはここの 2554 行目:周辺モード (3/4): 周辺モード API を追加 を参照してください。

すぐにもっとわかると思います。

于 2014-05-16T21:38:26.093 に答える