Работал ли со смежными устройствами

«Работал ли со смежными устройствами» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал с различными смежными устройствами через Bluetooth, NFC и Wi-Fi Direct. Например, подключал смартфоны к фитнес-трекерам через Bluetooth Low Energy (BLE), передавал данные между устройствами через NFC или реализовывал обмен файлами через Wi-Fi Direct.

Пример с BLE:

val gattCallback = object : BluetoothGattCallback() {
    override fun onConnectionStateChange(gatt: BluetoothGatt, status: Int, newState: Int) {
        if (newState == BluetoothProfile.STATE_CONNECTED) {
            gatt.discoverServices()
        }
    }
    override fun onServicesDiscovered(gatt: BluetoothGatt, status: Int) {
        val service = gatt.getService(UUID.fromString("..."))
        val characteristic = service.getCharacteristic(UUID.fromString("..."))
        gatt.readCharacteristic(characteristic)
    }
}

Также есть опыт работы с USB-устройствами через UsbManager и кастомными протоколами.