Java Code Examples for android.bluetooth.BluetoothGattCharacteristic#PERMISSION_WRITE
The following examples show how to use
android.bluetooth.BluetoothGattCharacteristic#PERMISSION_WRITE .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: HealthThermometerServiceFragment.java From ble-test-peripheral-android with Apache License 2.0 | 7 votes |
public HealthThermometerServiceFragment() { mTemperatureMeasurementCharacteristic = new BluetoothGattCharacteristic(TEMPERATURE_MEASUREMENT_UUID, BluetoothGattCharacteristic.PROPERTY_INDICATE, /* No permissions */ 0); mTemperatureMeasurementCharacteristic.addDescriptor( Peripheral.getClientCharacteristicConfigurationDescriptor()); mTemperatureMeasurementCharacteristic.addDescriptor( Peripheral.getCharacteristicUserDescriptionDescriptor(TEMPERATURE_MEASUREMENT_DESCRIPTION)); mMeasurementIntervalCharacteristic = new BluetoothGattCharacteristic( MEASUREMENT_INTERVAL_UUID, (BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_INDICATE), (BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_WRITE)); mMeasurementIntervalCCCDescriptor = Peripheral.getClientCharacteristicConfigurationDescriptor(); mMeasurementIntervalCharacteristic.addDescriptor(mMeasurementIntervalCCCDescriptor); mMeasurementIntervalCharacteristic.addDescriptor( Peripheral.getCharacteristicUserDescriptionDescriptor(MEASUREMENT_INTERVAL_DESCRIPTION)); mHealthThermometerService = new BluetoothGattService(HEALTH_THERMOMETER_SERVICE_UUID, BluetoothGattService.SERVICE_TYPE_PRIMARY); mHealthThermometerService.addCharacteristic(mTemperatureMeasurementCharacteristic); mHealthThermometerService.addCharacteristic(mMeasurementIntervalCharacteristic); }
Example 2
Source File: TxConcurrencyTests.java From bitgatt with Mozilla Public License 2.0 | 6 votes |
@Before public void before() { Context appContext = InstrumentationRegistry.getInstrumentation().getContext(); FitbitGatt.getInstance().startGattClient(appContext); // started FitbitBluetoothDevice device = new FitbitBluetoothDevice(MOCK_ADDRESS, "fooDevice"); fakeData = new byte[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'}; characteristic = new BluetoothGattCharacteristic(CHAR_NAME, PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); descriptor = new BluetoothGattDescriptor(DESCRIPTOR_NAME, BluetoothGattDescriptor.PERMISSION_WRITE); connection = FitbitGatt.getInstance().getConnection(device); if (connection == null) { connection = new GattConnection(device, appContext.getMainLooper()); FitbitGatt.getInstance().getConnectionMap().put(device, connection); } connection.setMockMode(true); connection.setState(GattState.CONNECTED); handler = new Handler(handlerThread.getLooper()); }
Example 3
Source File: CompositeClientTransactionTests.java From bitgatt with Mozilla Public License 2.0 | 6 votes |
@Test public void testSecondTransactionInCompositeExecutesOnConnectionThread() { byte[] someData = new byte[]{0x16, 0x11, 0x0F}; BluetoothGattCharacteristic characteristic = new BluetoothGattCharacteristic(characteristicUuid, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); WriteGattCharacteristicMockTransaction writeGattCharacteristicMockTransaction = new WriteGattCharacteristicMockTransaction(conn, GattState.WRITE_CHARACTERISTIC_SUCCESS, characteristic, someData, false); WriteGattCharacteristicMockTransaction writeGattCharacteristicMockTransactionTwo = new WriteGattCharacteristicMockTransaction(conn, GattState.WRITE_CHARACTERISTIC_SUCCESS, characteristic, someData, false); ArrayList<GattTransaction> txList = new ArrayList<>(2); txList.add(writeGattCharacteristicMockTransaction); txList.add(writeGattCharacteristicMockTransactionTwo); CompositeClientTransaction compositeClientTransaction = new CompositeClientTransaction(conn, txList); conn.runTx(compositeClientTransaction, callback -> { // ensure that we are on the fake main thread Assert.assertEquals(Thread.currentThread().getName(), conn.getMainHandler().getLooper().getThread().getName()); Assert.assertEquals(callback.resultStatus, TransactionResult.TransactionResultStatus.SUCCESS); }); }
Example 4
Source File: CompositeClientTransactionTests.java From bitgatt with Mozilla Public License 2.0 | 6 votes |
@Test public void testThatRunningTxOnWrongThreadWillThrow() throws InterruptedException { byte[] someData = new byte[]{0x16, 0x11, 0x0F}; BluetoothGattCharacteristic characteristic = new BluetoothGattCharacteristic(characteristicUuid, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); CountDownLatch cdl = new CountDownLatch(1); WriteGattCharacteristicMockTransaction writeGattCharacteristicMockTransaction = new WriteGattCharacteristicMockTransaction(conn, GattState.WRITE_CHARACTERISTIC_SUCCESS, characteristic, someData, false); singleThreadExecutor.execute(() -> { try { writeGattCharacteristicMockTransaction.commit(callback -> { Assert.fail("Should always throw illegal state exception"); cdl.countDown(); }); } catch (IllegalStateException ex) { assertTrue(ex.getMessage().contains(device.getName())); cdl.countDown(); } }); cdl.await(1000, TimeUnit.MILLISECONDS); }
Example 5
Source File: GattServer.java From blefun-androidthings with Apache License 2.0 | 6 votes |
private BluetoothGattService createAwesomenessService() { BluetoothGattService service = new BluetoothGattService(SERVICE_UUID, BluetoothGattService.SERVICE_TYPE_PRIMARY); // Counter characteristic (read-only, supports notifications) BluetoothGattCharacteristic counter = new BluetoothGattCharacteristic(CHARACTERISTIC_COUNTER_UUID, BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_NOTIFY, BluetoothGattCharacteristic.PERMISSION_READ); BluetoothGattDescriptor counterConfig = new BluetoothGattDescriptor(DESCRIPTOR_CONFIG, BluetoothGattDescriptor.PERMISSION_READ | BluetoothGattDescriptor.PERMISSION_WRITE); counter.addDescriptor(counterConfig); BluetoothGattDescriptor counterDescription = new BluetoothGattDescriptor(DESCRIPTOR_USER_DESC, BluetoothGattDescriptor.PERMISSION_READ); counter.addDescriptor(counterDescription); // Interactor characteristic BluetoothGattCharacteristic interactor = new BluetoothGattCharacteristic(CHARACTERISTIC_INTERACTOR_UUID, BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE, BluetoothGattCharacteristic.PERMISSION_WRITE); BluetoothGattDescriptor interactorDescription = new BluetoothGattDescriptor(DESCRIPTOR_USER_DESC, BluetoothGattDescriptor.PERMISSION_READ); interactor.addDescriptor(interactorDescription); service.addCharacteristic(counter); service.addCharacteristic(interactor); return service; }
Example 6
Source File: GattServerTests.java From bitgatt with Mozilla Public License 2.0 | 5 votes |
@BeforeClass public static void before() { Timber.plant(new Timber.DebugTree()); mockContext = InstrumentationRegistry.getInstrumentation().getContext(); main = new BluetoothGattService(UUID.fromString("adabfb00-6e7d-4601-bda2-bffaa68956ba"), BluetoothGattService.SERVICE_TYPE_PRIMARY); BluetoothGattCharacteristic txChar = new BluetoothGattCharacteristic(UUID.fromString("ADABFB01-6E7D-4601-BDA2-BFFAA68956BA"), BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_NOTIFY, BluetoothGattCharacteristic.PERMISSION_WRITE | BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED); main.addCharacteristic(txChar); BluetoothGattCharacteristic rxChar = new BluetoothGattCharacteristic(UUID.fromString("ADABFB02-6E7D-4601-BDA2-BFFAA68956BA"), BluetoothGattCharacteristic.PROPERTY_INDICATE | BluetoothGattCharacteristic.PROPERTY_NOTIFY | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED); main.addCharacteristic(rxChar); liveData = new BluetoothGattService(UUID.fromString("558dfa00-4fa8-4105-9f02-4eaa93e62980"), BluetoothGattService.SERVICE_TYPE_PRIMARY); BluetoothGattCharacteristic ldChar = new BluetoothGattCharacteristic(UUID.fromString("558DFA01-4FA8-4105-9F02-4EAA93E62980"), BluetoothGattCharacteristic.PROPERTY_INDICATE | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED); liveData.addCharacteristic(ldChar); dncs = new BluetoothGattService(UUID.fromString("16bcfd00-253f-c348-e831-0db3e334d580"), BluetoothGattService.SERVICE_TYPE_PRIMARY); BluetoothGattCharacteristic notifChar = new BluetoothGattCharacteristic(UUID.fromString("16BCFD02-253F-C348-E831-0DB3E334D580"), BluetoothGattCharacteristic.PROPERTY_NOTIFY | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED | BluetoothGattCharacteristic.PERMISSION_WRITE); dncs.addCharacteristic(notifChar); cpChar = new BluetoothGattCharacteristic(UUID.fromString("16BCFD01-253F-C348-E831-0DB3E334D580"), BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_WRITE); dncs.addCharacteristic(cpChar); BluetoothGattCharacteristic flsChar = new BluetoothGattCharacteristic(UUID.fromString("16BCFD04-253F-C348-E831-0DB3E334D580"), BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ | BluetoothGattCharacteristic.PERMISSION_WRITE); dncs.addCharacteristic(flsChar); }
Example 7
Source File: GattServerTests.java From bitgatt with Mozilla Public License 2.0 | 5 votes |
@Test public void notifyGattServerWithNullPointerException() throws InterruptedException { CountDownLatch cdl = new CountDownLatch(1); TransactionResult.TransactionResultStatus[] results = new TransactionResult.TransactionResultStatus[1]; FitbitGatt.FitbitGattCallback callback = new NoOpGattCallback() { @Override public void onGattServerStarted(GattServerConnection serverConnection) { super.onGattServerStarted(serverConnection); FitbitBluetoothDevice fbtDevice = new FitbitBluetoothDevice(MOCK_ADDRESS, "foobar"); BluetoothGattCharacteristic notifChar = new BluetoothGattCharacteristic(UUID.fromString("16BCFD02-253F-C348-E831-0DB3E334D580"), BluetoothGattCharacteristic.PROPERTY_NOTIFY | BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED | BluetoothGattCharacteristic.PERMISSION_WRITE); NotifyGattServerCharacteristicMockTransaction notifyTx = new NotifyGattServerCharacteristicMockTransaction(serverConnection, fbtDevice, GattState.NOTIFY_CHARACTERISTIC_SUCCESS, notifChar, true, true); notifyTx.setShouldThrow(true); serverConnection.runTx(notifyTx, result -> { results[0] = result.resultStatus; cdl.countDown(); }); } }; FitbitGatt.getInstance().registerGattEventListener(callback); FitbitGatt.getInstance().startGattServer(mockContext); cdl.await(1, TimeUnit.SECONDS); assertEquals(TransactionResult.TransactionResultStatus.FAILURE, results[0]); assertEquals(GattState.IDLE, FitbitGatt.getInstance().getServer().getGattState()); }
Example 8
Source File: CompositeClientTransactionTests.java From bitgatt with Mozilla Public License 2.0 | 5 votes |
@Test public void testFailSecondTransactionShouldHaveNoInterrupted() throws InterruptedException { byte[] someData = new byte[]{0x16, 0x11, 0x0F}; BluetoothGattCharacteristic characteristic = new BluetoothGattCharacteristic(characteristicUuid, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); WriteGattCharacteristicMockTransaction writeGattCharacteristicMockTransaction = new WriteGattCharacteristicMockTransaction(conn, GattState.WRITE_CHARACTERISTIC_SUCCESS, characteristic, someData, false); WriteGattCharacteristicMockTransaction writeGattCharacteristicMockTransactionTwo = new WriteGattCharacteristicMockTransaction(conn, GattState.WRITE_CHARACTERISTIC_SUCCESS, characteristic, someData, true); ArrayList<GattTransaction> txList = new ArrayList<>(2); txList.add(writeGattCharacteristicMockTransaction); txList.add(writeGattCharacteristicMockTransactionTwo); CompositeClientTransaction compositeClientTransaction = new CompositeClientTransaction(conn, txList); CountDownLatch cdl = new CountDownLatch(1); conn.runTx(compositeClientTransaction, callback -> { // ensure that we are on the fake main thread Assert.assertEquals(Thread.currentThread().getName(), conn.getMainHandler().getLooper().getThread().getName()); Assert.assertEquals(callback.resultStatus, TransactionResult.TransactionResultStatus.SUCCESS); Thread.currentThread().interrupt(); cdl.countDown(); }); cdl.await(1, TimeUnit.SECONDS); assertTrue("No exceptions were thrown", true); singleThreadExecutor = Executors.newSingleThreadScheduledExecutor(); }
Example 9
Source File: Helper.java From react-native-ble-manager with Apache License 2.0 | 5 votes |
public static WritableMap decodePermissions(BluetoothGattCharacteristic characteristic) { // NOTE: props strings need to be consistent across iOS and Android WritableMap props = Arguments.createMap(); int permissions = characteristic.getPermissions(); if ((permissions & BluetoothGattCharacteristic.PERMISSION_READ) != 0x0 ) { props.putString("Read", "Read"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_WRITE) != 0x0 ) { props.putString("Write", "Write"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED) != 0x0 ) { props.putString("ReadEncrypted", "ReadEncrypted"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED) != 0x0 ) { props.putString("WriteEncrypted", "WriteEncrypted"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM) != 0x0 ) { props.putString("ReadEncryptedMITM", "ReadEncryptedMITM"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM) != 0x0 ) { props.putString("WriteEncryptedMITM", "WriteEncryptedMITM"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED) != 0x0 ) { props.putString("WriteSigned", "WriteSigned"); } if ((permissions & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM) != 0x0 ) { props.putString("WriteSignedMITM", "WriteSignedMITM"); } return props; }
Example 10
Source File: HeartRateServiceFragment.java From ble-test-peripheral-android with Apache License 2.0 | 5 votes |
public HeartRateServiceFragment() { mHeartRateMeasurementCharacteristic = new BluetoothGattCharacteristic(HEART_RATE_MEASUREMENT_UUID, BluetoothGattCharacteristic.PROPERTY_NOTIFY, /* No permissions */ 0); mHeartRateMeasurementCharacteristic.addDescriptor( Peripheral.getClientCharacteristicConfigurationDescriptor()); mHeartRateMeasurementCharacteristic.addDescriptor( Peripheral.getCharacteristicUserDescriptionDescriptor(HEART_RATE_MEASUREMENT_DESCRIPTION)); mBodySensorLocationCharacteristic = new BluetoothGattCharacteristic(BODY_SENSOR_LOCATION_UUID, BluetoothGattCharacteristic.PROPERTY_READ, BluetoothGattCharacteristic.PERMISSION_READ); mHeartRateControlPoint = new BluetoothGattCharacteristic(HEART_RATE_CONTROL_POINT_UUID, BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); mHeartRateService = new BluetoothGattService(HEART_RATE_SERVICE_UUID, BluetoothGattService.SERVICE_TYPE_PRIMARY); mHeartRateService.addCharacteristic(mHeartRateMeasurementCharacteristic); mHeartRateService.addCharacteristic(mBodySensorLocationCharacteristic); mHeartRateService.addCharacteristic(mHeartRateControlPoint); }
Example 11
Source File: NodeTest.java From BlueSTSDK_Android with BSD 3-Clause "New" or "Revised" License | 5 votes |
private BluetoothGattCharacteristic createReadNotifyChar(UUID uuid){ BluetoothGattCharacteristic temp = new BluetoothGattCharacteristic(uuid, BluetoothGattCharacteristic.PROPERTY_READ|BluetoothGattCharacteristic .PROPERTY_NOTIFY, BluetoothGattCharacteristic.PERMISSION_READ| BluetoothGattCharacteristic.PERMISSION_WRITE); temp.addDescriptor(new BluetoothGattDescriptor(UUID.fromString ("00002902-0000-1000-8000-00805f9b34fb"), BluetoothGattDescriptor.PERMISSION_READ | BluetoothGattDescriptor.PERMISSION_WRITE)); return temp; }
Example 12
Source File: GattPlugin.java From bitgatt with Mozilla Public License 2.0 | 4 votes |
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) String getStringRepresentationOfPermissionsForCharacteristic(BluetoothGattCharacteristic characteristic) { StringBuilder permissionBuilder = new StringBuilder(); ArrayList<Integer> permissions = new ArrayList<>(8); int characteristicPermissions = characteristic.getPermissions(); if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_READ) == BluetoothGattCharacteristic.PERMISSION_READ) { permissions.add(BluetoothGattCharacteristic.PERMISSION_READ); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED) == BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED) { permissions.add(BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM) == BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM) { permissions.add(BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_WRITE) == BluetoothGattCharacteristic.PERMISSION_WRITE) { permissions.add(BluetoothGattCharacteristic.PERMISSION_WRITE); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED) == BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED) { permissions.add(BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM) == BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM) { permissions.add(BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED) == BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED) { permissions.add(BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED); } if ((characteristicPermissions & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM) == BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM) { permissions.add(BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM); } for (int i = 0; i < permissions.size(); i++) { int permission = permissions.get(i); switch (permission) { case BluetoothGattCharacteristic.PERMISSION_READ: permissionBuilder.append("read"); break; case BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED: permissionBuilder.append("read-encrypted"); break; case BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM: permissionBuilder.append("read-encrypted-mitm"); break; case BluetoothGattCharacteristic.PERMISSION_WRITE: permissionBuilder.append("write"); break; case BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED: permissionBuilder.append("write-encrypted"); break; case BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM: permissionBuilder.append("write-encrypted-mitm"); break; case BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED: permissionBuilder.append("write-signed"); break; case BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM: permissionBuilder.append("write-signed-mitm"); break; default: permissionBuilder.append("unknown"); } if (i < permissions.size() - 1) { permissionBuilder.append(", "); } } return permissionBuilder.toString(); }
Example 13
Source File: RequestTest.java From Android-BLE-Library with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Before public void init() { characteristic = new BluetoothGattCharacteristic(UUID.randomUUID(), BluetoothGattCharacteristic.PROPERTY_WRITE, BluetoothGattCharacteristic.PERMISSION_WRITE); }
Example 14
Source File: GattDatabase.java From AsteroidOSSync with GNU General Public License v3.0 | 4 votes |
public final T write() { m_permissions |= BluetoothGattCharacteristic.PERMISSION_WRITE; return (T) this; }
Example 15
Source File: GattDatabase.java From SweetBlue with GNU General Public License v3.0 | 4 votes |
public final T write() { m_permissions |= BluetoothGattCharacteristic.PERMISSION_WRITE; return (T) this; }
Example 16
Source File: GattDatabase.java From SweetBlue with GNU General Public License v3.0 | 4 votes |
public final T write() { m_permissions |= BluetoothGattCharacteristic.PERMISSION_WRITE; return (T) this; }