2

開発中のアプリケーションを別の BLE 対応デバイスに接続するために、この関数を呼び出します。

public boolean connecttoDevice(int position) {
    currentDevice = devices.get(position);
    final BluetoothManager bluetoothManager = (BluetoothManager) _client
            .getSystemService(Context.BLUETOOTH_SERVICE);
    if(currentDevice != null 
       && bluetoothManager.getConnectionState(currentDevice, BluetoothProfile.GATT) != BluetoothProfile.STATE_CONNECTED 
       && bluetoothManager.getConnectionState(currentDevice, BluetoothProfile.GATT) != BluetoothProfile.STATE_CONNECTING
    ){
        mBluetoothGatt = currentDevice.connectGatt(_client, false, mGattCallback);
        System.out.println(currentDevice.getName()+":"+currentDevice.getAddress());
        System.out.println(bluetoothManager.getConnectionState(currentDevice, BluetoothProfile.GATT));
    }
    else return false;
    return !(mBluetoothGatt == null);
}

_clientこのメソッドを呼び出すアクティビティです。メソッドを呼び出した後、デバイスの接続状態がまったく変更されず、コールバックが呼び出されないことがわかりました。どこが間違っていたのだろうか?

ありがとう、ボブ

4

1 に答える 1