- Bluetooth и WiFi — нежелательное соседство
- Как превратить смартфон в точку раздачи интернета по Bluetooth
- Стандартный способ
- Стороннее приложение
- Интернет по Bluetooth (Android)
- Интернет по Bluetooth между Android-устройствами
- Интернет по Bluetooth между Android-устройством и НЕ Android-телефоном
- Беспроводная отладка Android 11
- Android: Bluetooth в качестве сервиса
- Почему? И как?
- 1) Определите действия
- 2) Определите события-функции обратного вызова
- 3) Определение BroadcastReceiver
- 4) Определите сервис Bluetooth
- Заключение
Bluetooth и WiFi — нежелательное соседство
Доброго времени суток, друзья!
Думаю, что никто из вас не будет отрицать, что такие удобные технологии, как Bluetooth и WiFi существенно облегчают (и укорачивают) нашу жизнь, делая взаимодействие устройств на расстоянии мягким и шелковистым. Однако, сегодня я обнаружил ужасный факт — Bluetooth и WiFi донглы лучше не держать в соседних USB разъемах.
У меня дома имеется MiFi — Huawei E560. Прекраснейшая штука доставляет Интернет в старенький деревенский дом, в котором нет, не было и не будет проводного телефона, проводного Интернета и чего-нибудь еще проводного, кроме электричества. Раньше Интернетом дом обеспечивался с помощью ветерана российской мобильной интернетизации страны — USB-модема Option iCon 225, который на заре появления мобильного Интернета был куплен за бешеные 3 тыс. рублей у Билайна и от которого сейчас даже сам Билайн открещивается со словами, мол, не было у нас такого модема. Само собой модем брендированный, с наклеечкой и, вроде как, залоченный. Теперь же, вкусив все прелести WiFi-роутера NetGear JWNR2000v2, который у меня уже пару месяцев работает в городской квартире, для доставки интернета на ПК в деревню я приобрел тот самый MiFi и к нему WiFi-донгл Trendnet TEW-649UB. Дешево и сердито.
Донгл поселился в свободном USB-разъёме и начал свою работу, от которой последние пару недель я мучался постоянными прерываниями связи, странными «тяжёлыми» заходами в Web-интерфейс роутера и медленным Интернетом. Хотя при этом подключение к MiFi с планшета и смартфона было отличным. А всё почему? Потому что WiFi-донгл для ПК я поселил в соседний с Bluetooth-донглом USB-разъём.
Википедия говорит нам, что «радиосвязь Bluetooth осуществляется в ISM-диапазоне (англ. Industry, Science and Medicine), который используется в различных бытовых приборах и беспроводных сетях (свободный от лицензирования диапазон 2,4-2,4835 ГГц)». Она же говорит нам, что WiFi стандарты b, g и n тоже работают в этом же диапазоне частот. Что это значит? КЭП объяснит это всё помехами, и я вынужден согласиться. Это они.
Именно нахождением двух донглов в близком соседстве объясняется, что приём/передача через WiFi-донгл так туго работали, доставляя мне всяческие неудобства, а передача файла через Bluettoth напрочь блокировала доступ в Интернет. Теперь WiFi-донгл подключён через USB-удлиннитель и никаких проблем с качеством сигнала нет. В ноутбуках и прочей мелкой цельносборной технике эти модули, я полагаю, экранированы друг от друга, что разумно.
Надеюсь, что данная информация кому-нибудь поможет. Спасибо.
Источник
Как превратить смартфон в точку раздачи интернета по Bluetooth
У любого человека может возникнуть необходимость поделиться интернетом. Для этого придуман тетеринг — раздача мобильного интернет через Wi-Fi, но что делать в том случае, если модуль Wi-Fi на вашем устройстве не работает или отсутствует? Есть отличное решение — интернетом можно делиться по Bluetooth, правда, скорость будет невысокой.
Расшарить интернет по Bluetooth можно двумя способами: стандартными возможностями Android и с помощью стороннего приложения. В первом случае на смартфон или планшет не нужно ничего устанавливать, а во втором скорость соединения будет более высокой.
Стандартный способ
Откройте системные настройки, перейдите в раздел «Ещё» и нажмите на «Настройки модема». Переведите тумблер «Bluetooth-модем» в активное положение. Устройство перешло в режим раздачи интернета, теперь другие гаджеты смогут подключаться к нему и расходовать его трафик.
Стороннее приложение
Скачайте из Google Play приложение BlueDUN+ и запустите его. Вы увидите кнопку «Запустить Службу», нажмите её. Появится запрос на разрешение поиска смартфона другими устройствами. Обычно этот процесс занимает несколько секунд.
Источник
Интернет по Bluetooth (Android)
В большинстве современных операционных систем Android присутствует встроенная функция раздачи интернета (3G/4G или Wi-Fi) по Bluetooth. Также Android-устройства могут получать интернет по Bluetooth, причем не только от таких же устройств на Android, но и от более старых телефонов с поддержкой профиля Bluetooth PAN (Personal Area Network — Персональная сеть), например, Nokia Asha 302, работающая на платформе S40 и др.
Наличие встроенных функций раздачи и получения интернета по Bluetooth зависит от версии Android и самого устройства. Чтобы узнать, поддерживает ли Ваше Android-устройство только функцию раздачи или только функцию получения, или обе функции раздачи и получения интернета по Bluetooth, смотрите настройки системы на предмет присутствия соответствующих опций, как показано ниже.
Примечание: ниже подразумевается, что на раздающем телефоне или Android-устройстве уже настроен и работает интернет.
Интернет по Bluetooth между Android-устройствами
Чтобы узнать, поддерживает ли Ваше Android-устройство раздачу интернета по Bluetooth, откройте пункт «Дополнительно» (или «Еще > Режим модема») в разделе «Беспроводные сети» настроек Android. Если там присутствует опция «Bluetooth-модем», Ваше Android-устройство может раздавать интернет по Bluetooth.
После активирования данной опции должен автоматически включиться модуль Bluetooth и Android-устройство будет готово к раздаче интернета, получаемого по 3G/4G или Wi-Fi.
Переходим к другому Android-устройству, на котором собираемся получать интернет. Чтобы узнать, поддерживает ли Android-устройство получение интернета по Bluetooth, сначала нужно выполнить его сопряжение с раздающим интернет Android-устройством.
Перейдите в настройки Bluetooth, включите модуль Bluetooth и дождитесь появления имени раздающего интернет Android-устройства в списке обнаруженных устройств. Нажмите на него для сопряжения. На обоих устройствах должен появиться запрос на сопряжение с проверочным кодом. Убедитесь, что код совпадает и подтвердите запросы.
После успешного сопряжения раздающее интернет Android-устройство появится в списке подключенных. Нажмите на иконку дополнительных опций рядом с именем сопряженного устройства, чтобы увидеть список поддерживаемых возможностей. Если в нем присутствует опция «Интернет-доступ», Ваше Android-устройство поддерживает получение интернета по Bluetooth.
Включите опцию «Интернет-доступ». На раздающем Android-устройстве может появиться запрос на предоставление интернета запрашиваемому Android-устройству.
При успешном подключении вид значка Bluetooth в области уведомлений изменится, сигнализируя об активном подключении. Если в настройках Android включен индикатор скорости передачи данных по сети, он тоже появится в области уведомлений принимающего устройства.
Интернет по Bluetooth между Android-устройством и НЕ Android-телефоном
Старые мобильные телефоны, поддерживающие профиль Bluetooth PAN, также могут раздавать интернет по Bluetooth на Android-устройства, например, Nokia Asha 302, работающая на платформе S40. Также данную функцию поддерживают некоторые телефоны следующих производителей: Sony Ericsson, Samsung, LG и др. Список некоторых поддерживающих, возможно поддерживающих и не поддерживающих профиль Bluetooth PAN телефонов.
Рассмотрим настройку раздачи интернета на Android-устройство на примере мобильного телефона Nokia Asha 302. На самом деле данный телефон поддерживает два профиля Bluetooth: PAN (Personal Area Network — Персональная сеть) и DUN (Dial-Up Networking — Коммутируемое подключение). Оба можно настроить штатными средствами Windows при подключении к ноутбуку или компьютеру с Bluetooth-адаптером. Android же имеет встроенные средства работы только с профилем Bluetooth PAN.
Настройка очень похожая на вышеописанный случай с двумя Android-устройствами. В первую очередь нужно выполнить сопряжение по Bluetooth Android-устройства и мобильного телефона.
Затем открыть дополнительные функции сопряженного устройства и активировать переключатель «Интернет-доступ» (данный переключатель будет только в том случае, если и Android-устройство и мобильный телефон поддерживают профиль Bluetooth PAN).
После успешного подключения на экране мобильного телефона (в нашем примере Nokia Asha 302) появится значок передачи данных H (HSPA – стандарт 3G), а иконка Bluetooth изменит свой вид, указывая на активное Bluetooth-подключение.
Источник
Беспроводная отладка Android 11
Режим дебага по WiFi теперь доступен, начиная с версии ОС Android 11. Давайте разберемся, как подключить устройство по Wi-Fi и смотреть логи в Logcat.
Нам необходимо убедиться, что у нас имеется все необходимое для соединения, а именно:
- установлен компонент Android SDK Platform-Tools версии не ниже 30.0.0 (April 2020), но естественно необходимо поставить последнюю версию, в которой разработчики пофиксили существующие на данный момент баги;
- включенрежим разработчика на вашем устройстве;
- на устройстве версия ОС Android 11.
Переходим в режим разработчика на нашем устройстве и активируем «Отладку по Wi-Fi».
Далее необходимо выбрать раздел «Подключить устройство с помощью кода подключения».
В боттомшите отобразится сам код подключения к устройству и IP-адрес и порт.
Откроем Android Studio, перейдем во вкладку Terminal, далее введем и выполним команду adb pair ipaddr:port где ipaddr и port — данные из боттомшита «Подключение к устройству». Следующим шагом — вводим код подключения и получим push на устройство об успешном подключении.
Перейдем на вкладку Logcat и все, что нам осталось — выбрать наше устройстве из списка подключенных устройств, в конкретном примере это Samsung SM-N985F.
Источник
Android: Bluetooth в качестве сервиса
Почему? И как?
Вы когда-нибудь задавали себе вопрос, прочитав официальное руководство по bluetooth для Android, как управлять им внутри вашего приложения? Как сохранить соединение активным, даже когда вы переходите от одного действия к другому?
Что ж, в этом руководстве я постараюсь показать вам, как я реализовал связь bluetooth через Service, чтобы управлять bluetooth и соединением с различными действиями, используя Service Binding, а также установил слушатель обратного вызова для операций, получающих информацию о состоянии связи bluetooth.
В этом руководстве мы создадим четыре файла:
BluetoothSDKService :который реализует функциональные возможности bluetooth и выдает LocalBroadcast сообщения во время операций
BluetoothSDKListenerHelper : который выполняет BroadcastReceiver и запускает функции IBluetoothSDKListener
IBluetoothSDKListener : наш Interface, который определяет функции обратного вызова
BluetoothUtils : который содержит имена действий, определенных для фильтрации событий в BroadcastReceiver
1) Определите действия
Первым шагом является определение файла BluetoothUtils.kt , который содержит действия, о которых мы хотим получать уведомления в нашей активности:
Я определил несколько, но вы можете добавлять их по своему усмотрению.
2) Определите события-функции обратного вызова
Второй шаг — это определение нашего интерфейса, который будет содержать события, соответствующие действиям, которые мы определили в первом шаге. Итак, давайте продолжим и определим IBluetoothSDKListener как:
Этот интерфейс будет позже реализован в нашей активности, или фрагменте, который будет выполнять некоторые действия при появлении события. Например, когда устройство подключается, срабатывает функция onDeviceDiscovered , и затем вы можете перейти к выполнению определенных операций, например, как мы увидим в следующих шагах, отправить сообщение по bluetooth на только что подключенное устройство через наш BluetoothSDKService .
3) Определение BroadcastReceiver
Следующим шагом будет определение нашего BroadcastReceiver , задачей которого будет фильтрация намерений с нашими действиями, определенными до получения LocalBroadcastManager , для запуска функций обратного вызова, определенных в предыдущем разделе. Поэтому мы используем BluetoothSDKListenerHelper как:
В действии или фрагменте мы реализуем наш IBluetoothSDKListener , который мы зарегистрируем через две функции registerBluetoothSDKListner() и unregisterBluetoothSDKListner() . Например:
Теперь наш фрагмент может быть запущен для событий, полученных BroadcastListener , который передает их через обратные вызовы в интерфейс нашего фрагмента. Чего теперь не хватает? Ну, важная часть: сервис Bluetooth!
4) Определите сервис Bluetooth
А теперь самая сложная часть — Bluetooth Service. Мы собираемся определить класс, расширяющий Service , в котором мы определим функции, позволяющие привязывать Service и управлять потоками Bluetooth-соединения:
Чтобы сделать суть более читабельной, я закомментировал части о потоках, которые вы можете получить из официальной документации.
Как вы видите, в LocalBinder можно определить функции, которые будут видны действиям после привязки к ним. Например, мы можем определить функции для операций обнаружения, отправки сообщения или соединения, которые затем будут выполняться операции внутри сервиса.
Затем в потоках, управляющих сокетами, вы можете использовать функцию pushBroadcastMessage() для генерации событий и добавления информационного наполнения, такого как удаленное устройство и сообщение. Например:
Заключение
Мы видели, как из нашей активности можем связать сервис Bluetooth (1), который выполняет и управляет операциями Bluetooth. В нем мы можем запускать многоадресное событие (broadcast event) (2), которые получает Bluetooth-приемник. Получив их, Bluetooth-приемник, в свою очередь, вызывает функцию интерфейса, реализованную (4) в нашей активности, зарегистрированной на bluetooth-приемник(3)
Мой совет — всегда следовать официальному руководству и рекомендациям по написанию чистого кода.
Всех желающих приглашаем на двухдневный онлайн-интенсив «Делаем мобильную мини-игру за 2 дня». За 2 дня вы сделаете мобильную версию PopIt на языке Kotlin. В приложении будет простая анимация, звук хлопка, вибрация, таймер как соревновательный элемент. Интенсив подойдет для тех, кто хочет попробовать себя в роли Android-разработчика. >> РЕГИСТРАЦИЯ
Источник