Android bluetooth adapter state

Android bluetooth adapter state

Android SDK оснащен возможностью работать с мощными Bluetooth API, способными работать с Bluetooth адаптером устройства, производить поиск находящихся вблизи устройств, передавать данные между смартфонами и многое другое. В этом уроке мы рассмотрим основные возможности работы с Bluetooth, которые пригодятся при разработке приложений, работающих с этой функцией.

Для того, чтобы работать в вашем приложении с Bluetooth, прежде всего нужно импортировать в него Bluetooth API пакет. Чтобы это сделать добавляем в класс, в котором вы будете использовать работу с Bluetooth, следующее:

Для того, чтобы приложение могло работать с Bluetooth, в файле манифеста приложения AndroidManifest.xml нужно добавить соответствующее разрешение:

uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> 

Инструменты работы с Bluetooth включают в себя класс BluetoothAdapter. Он используется для того, чтобы получить доступ к Bluetooth устройства. Установка этого класса выглядит так:

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); 

Если пытаться выполнить эту команду на устройстве, не поддерживающем Bluetooth, то возвращенное значение от попытки использования должно принимать значение «null». Это можно проверить использованием простого оператора if:

BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); if(bluetooth != null)

Далее, после этой проверки, нужно настроить действие программы на случай, если аппарат поддерживает Bluetooth, но на данный момент он отключен пользователем. Поэтому нужно выполнить следующею проверку:

if (bluetooth.isEnabled()) < // Включен. Работаем с Bluetooth. > else < // Отключен. Предлагаем какое то другое действие. > 

Используя указанный выше код, можно сделать такую простую операцию. Если Bluetooth включен, мы показываем пользователю сообщение с данными имени и адреса Bluetooth. Если же адаптер выключен, пользователь увидит наше сообщение, говорящее ему, что Bluetooth выключен (как работать с Toast):

String status; if (bluetooth.isEnabled()) < String mydeviceaddress = bluetooth.getAddress(); String mydevicename = bluetooth.getName(); status = mydevicename +:+ mydeviceaddress; > else < status =Bluetooth отключен”; > Toast.makeText(this, status, Toast.LENGTH_LONG).show(); 

Чтобы получить имя Bluetooth устройства, мы использовали метод getName(). Если вы уже установили ранее разрешение на использование Bluetooth, то его имя можно задать и программно:

bluetooth.setName("AndroidCoder"); 

Для более детального отображения состояния Bluetooth устройства можно использовать метод BluetoothAdapter.getState(). В это методе можно получить такие данные:

STATE_TURNING_ON;
STATE_ON;
STATE_TURNING_OFF;
STATE_OFF.

Учитывая это, код выше может быть переиначен. Например, так:

String state = bluetooth.getState(); status = mydevicename +:+ mydeviceaddress + " : " + state; 

Bluetooth адаптер на большинстве устройств выключается по умолчанию для сохранения времени работы батареи.

Что же, на этом наш краткий экскурс в работу класса Bluetooth Adapter окончен. Вы получили самое базовое представление о работе с Bluetooth на Android устройствах. Стоит отметить, что попытки тестировать эти приемы на эмуляторе ни к чему не приведут, нужно проводить тестирование этих методов на реальном устройстве.

Источник

How to detect Bluetooth state change using a broadcast receiver?

I am trying to make an app that shows a toast when the device’s Bluetooth turned on. I wanna do that even when my app is not running. So I should use a broadcast receiver, add some permissions, an intent-filter to android manifest and make a java class but I don’t know the details. What should I do? Which permissions should I use?

3 Answers 3

AS far as permissions go, to detect the state change of bluetooth you need to add this to your AndroidManifest.xml.

An example receiver would look like this, you add this code to where you want to handle the broadcast, for example an activity:

 private final BroadcastReceiver mReceiver = new BroadcastReceiver() < public void onReceive (Context context, Intent intent) < String action = intent.getAction(); if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) < if(intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_OFF) // Bluetooth is disconnected, do handling here >> >; 

To use the receiver, you need to register it. Which you can do as follows. I register the receiver in my main activity.

registerReceiver(this, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)); 

You could also decide to add all of it to your AndroidManifest.xml. This way you can make a special class for the receiver and handle it there. No need to register the receiver, just make the class and add the below code to the AndroidManifest

Источник

Читайте также:  Bluetooth music receiver ipad
Оцените статью
Adblock
detector