Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

# Разрешить двусторонний текстовый чат через # Bluetooth в # Android

  1. Задача Основная цель этого поста - дать представление о том, как разрешить двусторонний текстовый...
  2. Шаг 2 Класс BluetoothAdapter
  3. Шаг 3 Метод isEnable ()
  4. Шаг 4 Откройте для себя Bluetooth
  5. Шаг 5 Bluetooth-соединение
  6. Шаг 6 Сопряжение устройств
  7. Шаг 7 Чтение и запись данных

Задача

Основная цель этого поста - дать представление о том, как разрешить двусторонний текстовый чат через Bluetooth в Android.

Шаг 1 Получить службу Bluetooth

Нам нужен сервис Android Bluetooth для этого учебника. Чтобы воспользоваться услугой Bluetooth, объявите БЛЮТУЗ разрешение в файле манифеста.

<использует-разрешение android: name = "android.permission.BLUETOOTH" />

Теперь, чтобы начать обнаружение устройства и получить доступ к настройке Bluetooth, объявите BLUETOOTH_ADMIN разрешение.

<использует-разрешение android: name = "android.permission.BLUETOOTH_ADMIN" />

(Примечание: если нам требуется BLUETOOTH_ADMIN разрешение, то мы также должны объявить разрешение BLUETOOTH.)

Шаг 2 Класс BluetoothAdapter

Теперь, чтобы проверить, поддерживается ли Bluetooth на устройстве или нет, мы используем объект класса BluetoothAdapter.

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter ();

Если этот метод возвращает значение NULL, это означает, что Bluetooth не поддерживается на устройстве, и поэтому мы закроем приложение.

Чтобы узнать больше о классе BluetoothAdapter, перейдите по следующей ссылке:

Шаг 3 Метод isEnable ()

Чтобы проверить, включен Bluetooth или нет, мы будем использовать метод isEnabled () для объекта класса BluetoothAdapter.

Если Bluetooth отключен, мы просим пользователя включить его. И мы выполняем это действие, вызывая startActivityForResult () с действием REQUEST_ENABLE_BT . Откроется диалоговое окно для включения Bluetooth на устройстве.

Intent enableIntent = new Intent (BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult (enableIntent, REQUEST_ENABLE_BT);

Если пользователь нажимает кнопку Разрешить, onActivityResult () метод получает RESULT_OK, и если пользователь нажимает кнопку « Запретить» (или из-за внутренней проблемы в устройстве), RESULT_CANCELED получено. Если получено возвращенное значение RESULT_OK , мы запустим службу чата.

Шаг 4 Откройте для себя Bluetooth

Теперь в Android устройство по умолчанию не обнаруживается. Чтобы сделать устройство доступным для обнаружения, вызовите startActivityForResult () с действием BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE . По умолчанию устройство обнаруживается в течение 120 секунд. Чтобы установить видимую продолжительность, добавьте EXTRA_DISCOVERABLE_DURATION в намерениях доп. Максимальное значение длительности составляет 360 секунд.

Intent discoverableIntent = new Intent (BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra (BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); startActivity (discoverableIntent);

Откроется диалоговое окно для включения режима обнаружения.

Шаг 5 Bluetooth-соединение

Чтобы начать чат, сначала нужно установить соединение с нужным устройством. И прежде чем начать сканирование на наличие доступных устройств, мы обычно получаем спаренные устройства первыми в списке.

BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter (); Set <BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices ();

Выше код вернет набор объектов BluetoothDevice. Объект класса BluetoothDevice предоставляет необходимую информацию об удаленном устройстве, которое используется для установления соединения (объяснено позже).

Чтобы начать сканирование, вызовите метод startDiscovery () класса BluetoothAdapter. Операция, которая начинает сканирование, должна зарегистрировать получателя с действием BluetoothDevice.ACTION_FOUND . После завершения обнаружения система передаст намерение BluetoothDevice.ACTION_FOUND . Это намерение содержит дополнительные поля EXTRA_DEVICE а также EXTRA_CLASS , представляющий BluetoothDevice и BluetoothClass, соответственно.

private final BroadcastReceiver discoveryFinishReceiver = new BroadcastReceiver () {@Override public void onReceive (Контекст контекста, намерение намерения) {String action = intent.getAction (); if (BluetoothDevice.ACTION_FOUND.equals (action)) {BluetoothDevice device = intent .getParcelableExtra (BluetoothDevice.EXTRA_DEVICE); if (device.getBondState ()! = BluetoothDevice.BOND_BONDED) {newDevicesArrayAdapter.add (device.getName () + "\ n" + device.getAddress ()); }} else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED .equals (action)) {setProgressBarIndeterminateVisibility (false); SetTitle (R.string.select_device); if (newDevicesArrayAdapter.getCount () == 0) {String noDevices = getResources (). getText (R.string.none_found) .toString (); newDevicesArrayAdapter.add (noDevices); }}}};

Чтобы узнать больше о BroadcastReceiver, пожалуйста, перейдите по следующей ссылке:

Чтобы зарегистрировать получателя:

Фильтр IntentFilter = новый Фильтр IntentFilter (BluetoothDevice.ACTION_FOUND); registerReceiver (discoveryFinishReceiver, фильтр);

Шаг 6 Сопряжение устройств

Чтобы соединить два устройства, мы должны реализовать механизм на стороне сервера и на стороне клиента. Одно устройство должно открыть сокет сервера, а другое должно инициировать соединение. Оба связаны, когда BluetoothSocket подключен к тому же каналу RFCOMM. Во время процедуры подключения Android Framework автоматически показывает диалог сопряжения.

Соединение как сервер:

  1. Сделать объект из BluetoothServerSocket вызывая listenUsingRfcommWithServiceRecord () .
  2. Прослушивание запросов на соединение по телефону принимаем () ,
  3. Освободите сокет сервера, вызвав близко() ,

закрытый класс AcceptThread расширяет Thread {private final BluetoothServerSocket serverSocket; private String socketType; public AcceptThread (логическое безопасное) {BluetoothServerSocket tmp = null; socketType = безопасный? «Безопасный»: «Небезопасный»; try {if (secure) {tmp = bluetoothAdapter.listenUsingRfcommWithServiceRecord (NAME_SECURE, MY_UUID_SECURE); } else {tmp = bluetoothAdapter .listenUsingInsecureRfcommWithServiceRecord (NAME_INSECURE, MY_UUID_INSECURE); }} catch (IOException e) {} serverSocket = tmp; } public void run () {setName ("AcceptThread" + socketType); Гнездо BluetoothSocket = ноль; while (state! = STATE_CONNECTED) {try {socket = serverSocket.accept (); } catch (IOException e) {break; } if (socket! = null) {synchronized (ChatService.this) {switch (state) {case STATE_LISTEN: case STATE_CONNECTING: подключено (socket, socket.getRemoteDevice (), socketType); перерыв; case STATE_NONE: case STATE_CONNECTED: try {socket.close (); } catch (IOException e) {} break; }}}}} public void cancel () {try {serverSocket.close (); } catch (IOException e) {}}}

Чтобы узнать больше о BluetoothSocket, пожалуйста, перейдите по следующей ссылке:

Подключение в качестве клиента:

  1. Создайте объект BluetoothSocket, вызвав createRfcommSocketToServiceRecord (UUID) для объекта BluetoothDevice.
  2. Инициируйте соединение, позвонив подключения () ,

закрытый класс ConnectThread расширяет поток {приватный финальный сокет BluetoothSocket; закрытое финальное устройство BluetoothDevice; private String socketType; public ConnectThread (устройство BluetoothDevice, логическая защита) {this.device = device; BluetoothSocket tmp = null; socketType = безопасный? «Безопасный»: «Небезопасный»; try {if (secure) {tmp = device .createRfcommSocketToServiceRecord (MY_UUID_SECURE); } else {tmp = device .createInsecureRfcommSocketToServiceRecord (MY_UUID_INSECURE); }} catch (IOException e) {} socket = tmp; } public void run () {setName ("ConnectThread" + socketType); bluetoothAdapter.cancelDiscovery (); try {socket.connect (); } catch (IOException e) {try {socket.close (); } catch (IOException e2) {} connectionFailed (); вернуть; } synchronized (ChatService.this) {connectThread = null; } подключен (сокет, устройство, socketType); } public void cancel () {try {socket.close (); } catch (IOException e) {}}}

Шаг 7 Чтение и запись данных

  1. После успешного установления соединения каждое устройство подключилось BluetoothSocket ,
  2. Теперь можно читать и записывать данные в потоки, используя чтения (байт []) а также написать (байт []).

закрытый класс ConnectedThread расширяет поток {приватный финал BluetoothSocket bluetoothSocket; закрытый финал InputStream inputStream; приватный финал OutputStream outputStream; public ConnectedThread (сокет BluetoothSocket, тип String socketType) {this.bluetoothSocket = сокет; InputStream tmpIn = null; OutputStream tmpOut = null; try {tmpIn = socket.getInputStream (); tmpOut = socket.getOutputStream (); } catch (IOException e) {} inputStream = tmpIn; outputStream = tmpOut; } public void run () {byte [] buffer = new byte [1024]; int байты; while (true) {try {bytes = inputStream.read (buffer); handler.obtainMessage (MainActivity.MESSAGE_READ, байты, -1, буфер) .sendToTarget (); } catch (IOException e) {connectionLost (); ChatService.this.start (); перерыв; }}} public void write (byte [] buffer) {try {outputStream.write (buffer); handler.obtainMessage (MainActivity.MESSAGE_WRITE, -1, -1, буфер) .sendToTarget (); } catch (IOException e) {}} public void cancel () {try {bluetoothSocket.close (); } catch (IOException e) {}}}

( Примечание: используйте android-support-v7-appcompat из вашего SDK)

Надеюсь, вы найдете этот пост очень полезным при работе с двухсторонним текстовым чатом по Bluetooth в Android. Дайте мне знать в комментарии, если у вас есть какие-либо вопросы относительно Android. Я отвечу вам как можно скорее.

Есть идея разработки приложений для Android ? Чего ты все еще ждешь? Связаться с нами сейчас и увидеть идею жить в ближайшее время. Наша компания была названа одной из лучших компаний по разработке приложений для Android в Индии .

Создано 10 марта 2015

я Android-разработчик Как разработчик, моя основная цель - продолжать изучать и совершенствовать свои навыки разработки, чтобы сделать приложение более удобным для пользователя.

Похожие

Как распечатать календарь с iPad с легкостью
... шаг 4 Часть 2. Как напечатать календарь iPad на ПК / Mac1 Для пользователей ПК, у которых нет доступа к iCal, или тех, кто считает, что включить синхронизацию календаря слишком сложно, есть альтернативный инструмент - AnyTrans чтобы помочь вам распечатать календарь iPad. AnyTrans стремится помочь вам управлять данными iOS, такими как календари, контакты, фотографии и так далее. В то время как AnyTrans
Colorbox всплывающие окна с изображениями и видео Drupal
Многие сайты любят показывать медиа во всплывающих окнах. Использование всплывающих окон может упростить посетителям быстрый просмотр нескольких изображений или видео. В этом уроке мы покажем вам, как использовать всплывающее окно Colorbox с Drupal. Мы увидим, как отображать поля изображения и видео во всплывающем
Как экспортировать Google Doc с вашего iPhone
У пользователей Google Документов есть много возможностей экспортировать документы для публикации в формате PDF или через Airdrop. Вот как. Изображение: CNET Если вы работаете в организации, которая использует приложения Google Suite G для общения
От NOC к BOC: как осуществить переход на предоставление ИТ-услуг
Для слишком многих ИТ-команд сегодня дни упакованы, напряжены и беспокойны, но слишком мало времени для действительно важных усилий. Вместо этого тревожные метели хоронят администраторов, заставляя их выбирать между тем, как проводить часы, просматривая избыточные события, или выборочно просматривая подмножество событий и потенциально пропуская критические проблемы. Чаще всего сотрудники узнают о проблемах только после того, как их обнаружат конечные пользователи, поэтому они тратят непомерное
Обновление 12/28: Доступного хранилища нет в официальном Android пирог обновление для устройств ...
Обновление 12/28: Доступного хранилища нет в официальном Android пирог обновление для устройств Samsung. Мы смогли подтвердить это на нашем Galaxy Note 9 , Когда Android Marshmallow был запущен в 2015 году, он представил функцию, которая значительно улучшила пользовательский интерфейс для многих, включая меня: адаптируемое хранилище. Когда
Как расширить рабочий стол вашего Mac на телевизор или iPad
Ваш Mac предоставляет различные способы, чтобы помочь вам хорошо работать в рамках ограничений одного дисплея, но иногда расширение рабочего пространства на второй экран - это просто лучший путь к повышению производительности. Если у вас нет традиционного компьютерного дисплея для подключения с помощью кабеля, вы можете использовать телевизор высокой четкости или устройство iOS. Здесь мы рассмотрим три варианта:
Как установить Joomla
Этот учебник охватывает следующие темы: Из этого туториала Вы узнаете, как вручную установить Joomla на свою учетную запись веб-хостинга. Мы сосредоточены на установке Joomla 3, так как это последняя стабильная ветка, официально рекомендованная для всех новых проектов. Загрузите необходимый установочный пакет Joomla 3 Чтобы начать установку Joomla на веб-сервере, сначала необходимо загрузить установочный пакет Joomla. Мы рекомендуем вам скачать Joomla только
Новые iPhone: как отличаются цены в Украине и в мире - последние новости технологий
В Украине цены на новые модели iPhone Xs и iPhone Xs Max будут значительно выше, чем в их стране-производителе США. По предварительным данным, из-за особенностей налогообложения и пошлин некоторые смартфоны для Украинской продавать дороже, чем по всему миру. Если в Штатах купить Xs можно будет от $ 999 (около 28 100 UAH), а Max - от $ 1099 (около 30990 UAH), то в нашей стране
Как установить Chrome в Linux и легко перенести ваш браузер из Windows
Реклама Если вы переход с Windows на Linux 5 причин, почему Windows 10 может заставить вас перейти на Linux 5 причин, почему Windows 10 может заставить вас перейти на Linux Несмотря на огромную популярность Windows 10, было много критики
Avira Antivirus Pro впервые в тесте производительности AV-Comparatives
10 ноября 2016 г. - 1 комментарий - Время чтения: 2 мин. - Подано в: Вредоносные программы Автор: Новости UnderNews - Скачать приложение для Android Вира снова попала! Avira Antivirus Pro занимает лидирующие позиции в тесте производительности AV-Comparatives за октябрь
Как карта жизни может помочь достичь ваших целей
... шагов, чтобы работать меньше и делать больше , Они позволяют визуализировать всю вашу жизнь, чтобы знать, что подходит, а что нет. Я отправлю вам бесплатный PDF-файл главы, если вы отправите письмо на [email protected]

Комментарии

А как насчет заблокированных систем?
А как насчет заблокированных систем? Если вы работаете в системе по месту работы, где вы не можете обновить или загрузить новый браузер, Chrome Frame является жизнеспособным вариантом. Вам не нужны никакие специальные права администратора для установки Chrome Frame, поэтому вы можете продолжать использовать ту же версию Internet Explorer, и почти мгновенно получите гораздо более высокий уровень просмотра, который идентичен использованию последней версии Google Chrome.
Напоследок - как бороться с правильной выдачей квитанций?
Напоследок - как бороться с правильной выдачей квитанций? Проблемная выдача квитанций для онлайн-продаж Предприниматель, который ведет продажи физическим лицам, которые не ведут бизнес, и единовременные фермеры обязаны регистрировать продажи в кассе. Хотя стационарная деятельность не доставляет особых хлопот, когда дело доходит до правильной фискализации операций, выдача квитанции в случае онлайн-продаж является реальной проблемой. Предприниматель
Как вы конвертируете своих клиентов после входа на сайт?
Как вы конвертируете своих клиентов после входа на сайт? Мы предлагаем скидки и акции, такие как бесплатная доставка или подарочные ваучеры на 5 долларов. Затем мы развеем любые сомнения, разместив обзоры продуктов на домашней странице, написанные нашими клиентами. Уравновешивая обе стратегии, мы быстро превращаем посетителей в покупателей. Что касается стратегий удержания клиентов - как вы заставляете клиентов возвращаться к вам? Мы рассылаем еженедельную рассылку
Как сделать неудачу от отца, и от матери, парня?
Как сделать неудачу от отца, и от матери, парня? Посмотреть рекламный ролик Tantum Verde Некоторые вещи не должны проходить без их эха. Я давно не обсуждал эту тему Как человек, ведущий блог и пытающийся быть в курсе того, что происходит в отрасли, я внимательно слежу за тем, что делают компании, чтобы повысить осведомленность о своих брендах. Некоторые действия выходят лучше, а некоторые становятся хуже. Это совершенно нормально.
Оператор сайта Google - как им пользоваться?
Оператор сайта Google - как им пользоваться? Давайте начнем с основ. Как мы упоминали в самом начале, оператор site: используется для сосредоточения результатов поиска на одном домене. Этот эффект может быть достигнут путем прямого входа в домен сразу после оператора, не разделяя его пробелом. Например, если мы заинтересованы в результатах поиска, охватывающих только адреса из Allegro.pl, отправка нашего выражения будет выглядеть следующим образом: сайт: allegro.pl
Так где же потребитель узнает о том, насколько хороши смартфоны Xiaomi?
Так где же потребитель узнает о том, насколько хороши смартфоны Xiaomi? От другого потребителя или рецензирование отзывов в интернете. Это звучит очевидно, но оказывается, что такая стратегия (хотя и несколько рискованная) приносит пользу. Стоит также отметить, что производитель продает свое оборудование в основном через Интернет. Только первые стационарные магазины компании начали функционировать.
Вы также понимаете, что поиск инвестора не является легким процессом, который может занять много времени, и результаты этого поиска не могут быть полностью уверены?
Вы также понимаете, что поиск инвестора не является легким процессом, который может занять много времени, и результаты этого поиска не могут быть полностью уверены? Встречайте, таким образом, краудфандингового акционера, способ поиска инвесторов для быстро масштабируемых бизнес-проектов, который побивает рекорды популярности во всем мире. Знаете ли вы, что, например, в Великобритании, крупнейшими инвесторами в компании на ранних стадиях роста являются платформы, которые разделяют акционерный
И От Windows Vista до Windows 7 - как?
Как это можно сделать? Вы узнаете через мгновение. Вторая история Хорошо подготовленная кампания - это прекрасная история, ваша и вашей команды - история о том, как случилось, что вы здесь, где вы находитесь. Хорошие истории, хорошо написанные, читайте с удовольствием, и вы можете купить инвестора и, конечно, набирать очки. В-третьих, документация. Трудно найти инвестора без бизнес-плана и четко определенной концепции использования своего капитала. Как поиск инвестора
Как выбрать?
Как выбрать? Selfie Stick или селфи-палка Селфи палочка это гаджет, который делает сенсацию в экспедициях, поездках и праздниках. Это неудивительно, потому что это чрезвычайно практичное оборудование, которое позволяет увековечить воспоминания чрезвычайно эффективным способом. Селфи палка имеет очень простое управление. Достаточно того, что наша флешка подключается к смартфону через Bluetooth,
Как тогда выбрать матрас для человека с большим весом?
Как тогда выбрать матрас для человека с большим весом? Прежде всего, оставим правило, что чем дешевле, тем лучше. Иногда стоит заплатить больше, когда вы покупаете, но вы можете использовать матрас дольше, здоровее и удобнее. На данный момент некоторые из самых долговечных и в то же время самых гибких материалов высокоэластичные пены и латекс , На него влияют как
Если бы мы использовали этот термин, как он определен, то нелепо тематические блоги - более специализированные - вышли бы из обращения и стали бы чем-то?
Если бы мы использовали этот термин, как он определен, то нелепо тематические блоги - более специализированные - вышли бы из обращения и стали бы чем-то? Сайты? Но SJP отмечает одну важную вещь - «обычно с возможностью комментирования». Да, только в эпоху Web 2.0 большинство веб-сайтов также имеют возможность комментировать и взаимодействовать. Тем не менее, Web 2.0 более или менее основан на этом. Неточное определение. Может быть, что-то из Википедии? «Блог»

Device = device; BluetoothSocket tmp = null; socketType = безопасный?
Чего ты все еще ждешь?
А как насчет заблокированных систем?
Напоследок - как бороться с правильной выдачей квитанций?
Напоследок - как бороться с правильной выдачей квитанций?
Как вы конвертируете своих клиентов после входа на сайт?
Что касается стратегий удержания клиентов - как вы заставляете клиентов возвращаться к вам?
Как сделать неудачу от отца, и от матери, парня?
Оператор сайта Google - как им пользоваться?
Оператор сайта Google - как им пользоваться?