2017-12-28 16 views
0

私が見ているすべての例を見ると、BluetoothGattオブジェクトを使用する方法を初期化することです。BLEでBluetoothGattオブジェクトを初期化する方法は?

mGatt = device.connectGatt(activity、false、gattClientCallback);

ここで、デバイスを接続せずにgattオブジェクトを初期化するにはどうすればいいですか?私は、デバイス接続、特性発見などのコールバックを処理するコールバッククラスを集中化しています。しかし、私の問題は、私が空のオブジェクトとして行くそのクラスのコンストラクタにmgattオブジェクトを渡す場合です。 は、私はいつも

@Override 
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { 
    super.onConnectionStateChange(gatt, status, newState); 
    try { 
     // Log.d("+++++++++++++connectionstatechange", "" + status); 
     mBluetoothGatt = gatt; 

を使用することができますが、私はconnect関数を呼び出すことなく、それを初期化することができる方法があります。

おかげで非常に:)

答えて

0

ませ結ぶより他に方法はありません。

あなたはあなたが渡すカスタムクラスを持つことができます。このクラスは、あなたのBluetoothGattオブジェクトを含むメンバ変数を持つことができます。

+0

GattClientCallBackを拡張するシングルトンクラスを意味しますか? – Pritish

+0

いいえ、オブジェクトにBluetoothGattオブジェクトのインスタンスがあるクラスだけです。そうすれば、このクラスのオブジェクトを渡すことができ、接続時にメンバー変数をBluetoothGattオブジェクトに割り当てることができます。 BluetoothGattオブジェクトを閉じると、メンバー変数がnullに設定されます。 – Emil

関連する問題