Напишите характеристику всегда ложноAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Напишите характеристику всегда ложно

Сообщение Anonymous »

Теперь я знаю, что этот вопрос был задан о миллиарде раз. arduino) < /p>

Что я сделал до сих пор: < /p>

в паре с устройством с использованием встроенных настроек (без программированная
логика в моем приложении) < /p>

подключено с помощью устройства с использованием сервера Gatt. < /p>

Однако, когда я пытаюсь написать характеристику, соответствующий статус возвращается логический Это наиболее релевантный код: < /p>

private void setupServer(BluetoothAdapter bAdapter) {
Log.d(TAG, "Started setting up server");

BluetoothLeAdvertiser bAdvertiser = bAdapter.getBluetoothLeAdvertiser();
if (bAdapter != null) {
bGattServer = bManager.openGattServer(getApplicationContext(), new BluetoothGattServerCallback() {
@Override
public void onConnectionStateChange(BluetoothDevice device, int status, int newState) {
super.onConnectionStateChange(device, status, newState);
}
});
//Create a service using a random UUID
//Create characteristics with WRITE property and write a value
BluetoothGattService service = new BluetoothGattService(UUID.randomUUID(), BluetoothGattService.SERVICE_TYPE_PRIMARY);
BluetoothGattCharacteristic bluetoothGattCharacteristic = new BluetoothGattCharacteristic(bUUID, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE);
Log.d(TAG, "Adding characteristic to service " + service.addCharacteristic(bluetoothGattCharacteristic));
bluetoothGattCharacteristic.setValue("hello");
Log.d(TAG, "Trying to write characteristic..., first value: " + bluetoothGattCharacteristic.getValue()[0]);
if (bGatt != null) {
boolean success = bGatt.writeCharacteristic(bluetoothGattCharacteristic);
if (success) {
Log.d(TAG, "Successfuly wrote characteristic to" + bUUID);
} else {
//THIS ALWAYS EXECUTES??
Log.e(TAG, "Failed to write to characteristic");
}
} else {
Log.e(TAG, "BGATT IS NULL");
}
service.addCharacteristic(bluetoothGattCharacteristic);
bGatt.setCharacteristicNotification(bluetoothGattCharacteristic, true);
bGattServer.addService(service);
}
< /code>

Это мои разрешения: < /p>





< /code>

И это остальная часть соответствующего кода < /p>

private boolean scanBluetooth(final BluetoothAdapter bAdapter, final BluetoothDevice[] bDevice) {

final BluetoothLeScanner bScanner = bAdapter.getBluetoothLeScanner();
final boolean[] stopCallback = {false};
Log.d(TAG,"Started scanning");
bScanner.startScan(new ScanCallback() {
@Override
public void onScanResult(int callbackType, ScanResult result) {
super.onScanResult(callbackType, result);
bDevice[0] = result.getDevice();
if (bDevice[0] == null || stopCallback[0]) {
Toast.makeText(getApplicationContext(), "Didn't find a device", Toast.LENGTH_LONG);

} else {
stopCallback[0] = true;
System.out.println("DEVICE" + bDevice[0]);
bGatt = bDevice[0].connectGatt(getApplicationContext(), true, new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
super.onConnectionStateChange(gatt, status, newState);
if(status == BluetoothGatt.GATT_SUCCESS){
Log.d(TAG, "Successful GATT " + newState);
setupServer(bAdapter);
return;
}
if(status == BluetoothGatt.GATT_FAILURE){
Log.e(TAG,"Bigg error boi");
System.exit(1);
}
else{
Log.w(TAG,"Oh no, gatt failed " + status + " retrying");
return;
}

}
@Override
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
Log.d(TAG, "Characteristic written" + status);
}

}, BluetoothDevice.TRANSPORT_LE);
Log.d(TAG, "Bgatt value:" + bGatt);

}
}
});
if(bGatt==null){
Log.w(TAG, "BGATT IS NULL WHILE SCANNING");
}
Log.d(TAG, "Finished scanning...");
return true;
}
< /code>

Я получил Buuid, используя App Blescanner, который показал UUID для чтения и записи. Цель моего приложения состоит в том, чтобы отразить функциональность этого приложения, но я начинаю терять внимание. Я еще даже не могу отправить простой Hello World. < /p>

android Studio output: < /p>

018-12-01 23:58:56.214 25024-25136/com.iopt.davidv7.iopt W/DBG: Oh no, gatt failed 22 retrying
2018-12-01 23:58:56.675 25024-25136/com.iopt.davidv7.iopt D/DBG: Successful GATT 2
2018-12-01 23:58:56.675 25024-25136/com.iopt.davidv7.iopt D/DBG: Started setting up server
2018-12-01 23:58:56.692 25024-25136/com.iopt.davidv7.iopt D/DBG: Adding characteristic to service true
2018-12-01 23:58:56.693 25024-25136/com.iopt.davidv7.iopt D/DBG: Trying to write characteristic..., first value: 104
2018-12-01 23:58:56.693 25024-25136/com.iopt.davidv7.iopt E/DBG: Failed to write to characteristic
< /code>

Клиент-это простой модуль Bluetooth HM-10, и я хочу отразить то, что я отправляю в приложении на последовательном мониторе, используя Arduino IDE. < /p>

Надеюсь, я дал вам весь контекст, потому что я теряю надежду. Я не проверяю разрешения вручную, потому что я настроил их с использованием системного диалога, однако, было только «местоположение», чтобы включить? Может ли это быть корнем моей проблемы? Проверка с помощью проверки самостоятельно на Bluetooth, администратор Bluetooth возвращает истину, поэтому я не думаю, что это: < /p>

if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.BLUETOOTH_ADMIN)
!= PackageManager.PERMISSION_GRANTED) {
Log.e(TAG,"No permission for bluetooth");
// Permission is not granted
}
else{
Log.d(TAG,"Bluetooth permission granted");
}


Подробнее здесь: https://stackoverflow.com/questions/535 ... ways-false
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»