開発中のアプリケーションを別の 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
このメソッドを呼び出すアクティビティです。メソッドを呼び出した後、デバイスの接続状態がまったく変更されず、コールバックが呼び出されないことがわかりました。どこが間違っていたのだろうか?
ありがとう、ボブ