2017-05-30 6 views
0

ブルートゥースアンドロイドAPIからフェッチアンドロイドセカンダリブルートゥースガットサービス。現在、以下のセカンダリブルートゥースギャットサービスを取得します。

たちはBLEサービスをフェッチコードです:

public void onServicesDiscovered(BluetoothGatt gatt, int status) { 
      if (status == BluetoothGatt.GATT_SUCCESS) { 
       broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED); 
       List<BluetoothGattService> gattServices = mBluetoothGatt.getServices(); 
       Log.e("onServicesDiscovered", "Services count: "+gattServices.size()); 

       BluetoothGattService bleServ = mBluetoothGatt.getService(UUID.fromString("22222222-0000-0000-0000-000000000000")); 

       for (BluetoothGattService gattService : gattServices) { 
        String serviceUUID = gattService.getUuid().toString(); 
        Log.e("onServicesDiscovered", "Service uuid "+serviceUUID); 
       } 
      } else { 
       Log.w(TAG, "onServicesDiscovered received: " + status); 
      } 
     } 

は専らセカンダリサービスを取得しようとしたが、それはNULLオブジェクトを返します。

BluetoothGattService bleServ = mBluetoothGatt.getService(UUID.fromString("22222222-0000-0000-0000-000000000000")); 

誰かが検索する方法を任意のポインタを指すことができますAndroidの二次的なサービス。

答えて

0

プライマリサービスでhttps://developer.android.com/reference/android/bluetooth/BluetoothGattService.html#getIncludedServices()というこの方法を使用する必要があります。

+0

応答ありがとうございます。私も、私たちのBluetoothスタック開発者と同じ議論をしました。二次サービスをブリーフ周辺機器上の一次サービスの一部にする方法を入力することができますか?私たちのbleチームはBlueZスタックを使用しています。以下は、bleデバイス上でサービスを作成するために参照しているリンクです。https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt- api.txt – ASH

+0

BlueZで実装されていないようです "array {object} [読み取り専用]を含みます:実装されていません"。二次的なサービスが本当に必要ですか?プライマリサービスを使用できませんか? – Emil

+0

接続のためにすべてのデバイスに特定のサービスを公開しないという要件があります。周辺機器との接続が許可されているデバイスだけが、他のセカンダリサービスと通信することができます。 – ASH

関連する問題