BluetoothCentral { public @NotNull List<BluetoothPeripheral> getConnectedPeripherals() { return new ArrayList<>(connectedPeripherals.values()); } BluetoothCentral(@NotNull Context context, @NotNull BluetoothCentralCallback bluetoothCentralCallback, @NotNull Handler handler); void close(); boolean setScanMode(int scanMode); void scanForPeripheralsWithServices(@NotNull final UUID[] serviceUUIDs); void scanForPeripheralsWithNames(@NotNull final String[] peripheralNames); void scanForPeripheralsWithAddresses(@NotNull final String[] peripheralAddresses); void scanForPeripheralsUsingFilters(@NotNull List<ScanFilter> filters); void scanForPeripherals(); void stopScan(); boolean isScanning(); void connectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void autoConnectPeripheral(@NotNull BluetoothPeripheral peripheral, @NotNull BluetoothPeripheralCallback peripheralCallback); void cancelConnection(@NotNull final BluetoothPeripheral peripheral); void autoConnectPeripheralsBatch(@NotNull Map<BluetoothPeripheral, BluetoothPeripheralCallback> batch); @NotNull BluetoothPeripheral getPeripheral(@NotNull String peripheralAddress); @NotNull List<BluetoothPeripheral> getConnectedPeripherals(); boolean isBluetoothEnabled(); boolean setPinCodeForPeripheral(@NotNull String peripheralAddress, @NotNull String pin); boolean removeBond(@NotNull String peripheralAddress); void startPairingPopupHack(); static final int SCAN_FAILED_ALREADY_STARTED; static final int SCAN_FAILED_APPLICATION_REGISTRATION_FAILED; static final int SCAN_FAILED_INTERNAL_ERROR; static final int SCAN_FAILED_FEATURE_UNSUPPORTED; static final int SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES; static final int SCAN_FAILED_SCANNING_TOO_FREQUENTLY; }
@Test public void getConnectedPeripheralsTest() throws Exception { application.grantPermissions(Manifest.permission.ACCESS_COARSE_LOCATION); BluetoothPeripheral peripheral = mock(BluetoothPeripheral.class); when(peripheral.getAddress()).thenReturn("12:23:34:98:76:54"); when(peripheral.getType()).thenReturn(BluetoothDevice.DEVICE_TYPE_LE); central.connectPeripheral(peripheral, peripheralCallback); verify(peripheral).connect(); Field field = BluetoothCentral.class.getDeclaredField("internalCallback"); field.setAccessible(true); BluetoothPeripheral.InternalCallback internalCallback = (BluetoothPeripheral.InternalCallback) field.get(central); internalCallback.connected(peripheral); verify(callback).onConnectedPeripheral(peripheral); List<BluetoothPeripheral> peripherals = central.getConnectedPeripherals(); assertNotNull(peripherals); assertEquals(1, peripherals.size()); assertEquals(peripheral, peripherals.get(0)); peripheral.cancelConnection(); internalCallback.disconnected(peripheral, GATT_SUCCESS); List<BluetoothPeripheral> peripherals2 = central.getConnectedPeripherals(); assertNotNull(peripherals2); assertEquals(0, peripherals2.size()); }
@Test public void getConnectedPeripheralsNoneTest() { List<BluetoothPeripheral> peripherals = central.getConnectedPeripherals(); assertNotNull(peripherals); assertEquals(0, peripherals.size()); }