private final BluetoothGattServerCallback mGattServerCallback = new BluetoothGattServerCallback() {
@Override
public void onConnectionStateChange(BluetoothDevice device, final int status, int newState) {
super.onConnectionStateChange(device, status, newState);
if (status == BluetoothGatt.GATT_SUCCESS) {
if (newState == BluetoothGatt.STATE_CONNECTED) {
mBluetoothDevices.add(device);
updateConnectedDevicesStatus();
String macAddress = android.provider.Settings.Secure.getString(getApplication().getContentResolver(), "bluetooth_address");
Log.v(TAG, "Connected to device: " + device.getAddress());
Log.d("/bleUUID","uuid is " +macAddress);
Log.d("/bleUUID","uuid is " +CHARACTERISTIC_USER_DESCRIPTION_UUID);
} else if (newState == BluetoothGatt.STATE_DISCONNECTED) {
mBluetoothDevices.remove(device);
updateConnectedDevicesStatus();
Log.v(TAG, "Disconnected from device");
}
} else {
mBluetoothDevices.remove(device);
updateConnectedDevicesStatus();
// There are too many gatt errors (some of them not even in the documentation) so we just
// show the error to the user.
final String errorMessage = getString(com.efftronics.android.bleperipheral.R.string.status_errorWhenConnecting) + ": " + status;
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Peripheral.this, errorMessage, Toast.LENGTH_LONG).show();
}
});
Log.e(TAG, "Error when connecting: " + status);
}
}
}
При отключении от nrf connect, onConnectionStateChange
не вызывает. Почему?
Я внедряю BLE Peripheral App. Мое приложение - реклама (периферийный режим). и NRF connect (центральный режим) сканирует рекламные устройства.
Когда другое приложение подключается к моему периферийному приложению, адрес моего периферийного приложения отображается в соединении NRF. Этот адрес исходит из этой строки.
частный статический окончательный UUID CHARACTERISTIC_USER_DESCRIPTION_UUID = UUID
.fromString ( "00002901-0000-1000-8000-00805f9b34fb");
Но каждый раз при подключении к NRF-соединению этот адрес меняется. Почему?
Если мне нужно один и тот же адрес каждый раз. Как я могу это сделать?
Через некоторое время приложение my ble периферийное устройство автоматически отключается с ошибкой тайм-аута. Почему?
Пожалуйста, помогите мне. Любая помощь будет оценена.