Урок 4.Реализация поиска устройств. Связываем Arduino и телефон на Android через Bluetooth.

  Переглядів 2,240

Astar Channel

Astar Channel

5 років тому

#android #java #arduino #bluetooth
В этом уроке реализуем поиск bluetooth устройств и добавление их в список. Напишем приемник событий на основе BroadcastReceiver, который будет отлавливать события начала и конца поиска, а так же события обнаружения нового устройства.
Bluetooth модуль HC-06 goo.gl/VHhNXi
Arduino UNO goo.gl/aiN1D8
Arduino NANO goo.gl/mWuTVZ
Проект Android Studio в ZIP-архиве goo.gl/6yb6Xk
Два метода для проверки разрешений goo.gl/tAq4n2
Скетч к проекту из видеоурока goo.gl/PSQ7jX
Android Studio скачать goo.gl/kJbNkt
Для тех кто хочет помочь финансово
Yandex.Деньги: 410012064564580
Заранее огромное спасибо =)

КОМЕНТАРІ: 20
@Partizanex
@Partizanex 4 роки тому
Автор. Есть тема.. Умные часы xaomi. Ставим галочку что бы было видно в эфире. Сн05 и ардруино при обнаружении устройства выполняют действие. Применение: паралельно кнопке открытия домофона релюха управляемая этим чудом. Поднес часы к домофону. Тадам дверь открылась.
@user-nx8ti2mv6t
@user-nx8ti2mv6t 4 роки тому
Спасибо за урок! Лайк однозначно.
@AsTaR75256
@AsTaR75256 4 роки тому
Спасибо
@Name_password
@Name_password 3 роки тому
Astar, здравствуйте. Подскажите, пожалуйста, у меня при поиске новых устройств найденные дублируются.
@AsTaR75256
@AsTaR75256 3 роки тому
добрый вечер. при добавлении устройства в список bluetoothDevices проверяй есть ли там уже такое устройство или нет. Проверить можешь при помощи метода у ArrayList contains(). Или как вариант использовать Set Collection, он как раз может хранить в себе только уникальные значения.
@Name_password
@Name_password 3 роки тому
@@AsTaR75256 Понял, большое спасибо.
@dekka552
@dekka552 3 роки тому
А куда в коде посмотреть, если при нажатии на кнопку "Начать поиск" приложение сворачивается, поиск не выполняется?
@AsTaR75256
@AsTaR75256 3 роки тому
Проверьте разрешения доступа к местоположению устройства для приложения. Включите геолокацию на телефоне. И в манифесте должны быть обязательно разрешения
@timyumalin724
@timyumalin724 3 роки тому
Привет. В методе setListAdapter есть небольшой недочет, он присваивает всем найденным устройствам иконку несопряженного устройства, даже если оно сопряжено. Я думаю это связано с тем, что сопряженное устройство в то же время является и найденным (одно другому не мешает). То есть нужно еще дополнительно проверить, является ли найденное устройство сопряженные, и если да, то после этого уже присвоить ему соответствующую иконку. Плюс еще есть небольшой баг в том, что устройства дублируются, порой несколько раз Попробовал так: if (type == BT_FOUND && type != BT_BOUNDED) { iconType = R.drawable.ic_bluetooth_no_bounded; } if (type == BT_BOUNDED && type == BT_FOUND) { iconType = R.drawable.ic_bluetooth_bounded; } Не помогло, что в принципе логично, ведь type не может иметь сразу 2 значения. Мб нужно добавить еще одну константу типа BT_FOUND_BOUND или типа того
@AsTaR75256
@AsTaR75256 3 роки тому
Привет, после переезда на новую квартиру я буду записывать уроки на Kotlin. Я учту данный момент. Спасибо за замечание. Чуть-чуть позже посмотрю варианты решения, а то в текущий момент пока что я не за компом
@timyumalin724
@timyumalin724 3 роки тому
@@AsTaR75256 привет, посмотрел API по BT. С помощью EXTRA_BOND_STATE можно получить BOND_BONDED или BOND_NONE, и уже отсюда проверить состояние сопряжения. Сейчас пробую реализовать это, плюс еще есть метод getBondState() который возвращает "10" для несопряженыых и "12" для сопряженных устройств. developer.android.com/reference/android/bluetooth/BluetoothDevice
@timyumalin724
@timyumalin724 3 роки тому
@@AsTaR75256 В общем все пофиксил и немного дополнил, все работает нормально. Если интересно, то могу скинуть код
@user-wi7ts1lf2b
@user-wi7ts1lf2b 3 роки тому
@@timyumalin724 Интересно! Скинь плиз)
@timyumalin724
@timyumalin724 3 роки тому
@@user-wi7ts1lf2b в адаптере проверь полученный Bluetooth Device методом getBondState. Он вернет что-то из BOND_NONE, BOND_BONDING, BOND_BONDED. И в зависимости от этого уже присвой иконку
Эти культовые фразы из фильмов перевели НЕПРАВИЛЬНО
17:58
Skyeng: онлайн-школа английского языка
Переглядів 342 тис.
McDonald’s MCNUGGET PURSE?! #shorts
00:11
Lauren Godwin
Переглядів 23 млн
Підставка для яєць
00:37
Afinka
Переглядів 108 тис.
Старейшая нерешённая задача [Veritasium]
30:08
Самые недооцененные летние кроссовки
11:13
НАКЕД БУТС
Переглядів 16 тис.