Android SDK поставляется с мощными API-интерфейсами Bluetooth, способными управлять локальным адаптером Bluetooth, сканировать близлежащие устройства Bluetooth, передавать данные между устройствами Bluetooth и многое другое. Этот краткий обзор Bluetooth покажет вам самые основные шаги, необходимые для начала программирования приложений Bluetooth на Android SDK.
Шаг 1. Импортируйте пакет Bluetooth
Первое, что нужно сделать, если вы хотите работать с Bluetooth в приложении Android, — это импортировать пакет Bluetooth API. Для этого добавьте следующую строку кода в класс, который вы хотите использовать API-интерфейсы Bluetooth:
1
|
import android.bluetooth.*;
|
Шаг 2. Установите разрешения Bluetooth
Для работы с Bluetooth в вашем приложении вам необходимо установить следующее разрешение:
1
|
<uses-permission android:name=»android.permission.BLUETOOTH» />
|
Для более сложных задач Bluetooth, таких как установка имени локального устройства, как мы будем делать в этом руководстве, вам необходимо настроить разрешение администратора Bluetooth. Для этого добавьте следующую строку:
1
|
<uses-permission android:name=»android.permission.BLUETOOTH_ADMIN» />
|
Шаг 3: Доступ к адаптеру Bluetooth
API-интерфейсы Bluetooth для Android включают класс BluetoothAdapter
. Этот класс используется как одиночный для доступа к радио Bluetooth на устройстве Android. Этот класс должен быть создан для выполнения любых связанных с Bluetooth задач в программе.
1
|
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
|
Если устройство, на котором работает выше, не поддерживает Bluetooth, возвращаемое значение будет равно «null». В практическом приложении вы должны проверить это условие и обновить приложение, если это необходимо. Вы можете проверить это с помощью простого оператора if
:
1
2
3
4
5
6
|
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
if(bluetooth != null)
{
// Continue with bluetooth setup.
}
|
Шаг 4: Проверьте, включен ли Bluetooth
Как я уже говорил выше, при первом вызове getDefaultAdapter()
будет возвращено значение null, если Bluetooth не поддерживается на устройстве. Однако, даже если Bluetooth поддерживается на устройстве, он может быть отключен пользователем. Это следующая вещь, чтобы проверить.
1
2
3
4
5
6
7
|
if (bluetooth.isEnabled()) {
// Enabled.
}
else
{
// Disabled.
}
|
Шаг 5: Показать имя устройства и адрес
Используя приведенный выше код, давайте теперь покажем пользователю сообщение о состоянии Bluetooth. Если Bluetooth включен на устройстве, мы будем отображать имя устройства и адрес. Если Bluetooth отключен, мы отобразим сообщение, чтобы сообщить пользователю.
01
02
03
04
05
06
07
08
09
10
11
12
|
String status;
if (bluetooth.isEnabled()) {
String mydeviceaddress = bluetooth.getAddress();
String mydevicename = bluetooth.getName();
status = mydevicename + ” : ” + mydeviceaddress;
}
else
{
status = “Bluetooth is not Enabled.”;
}
Toast.makeText(this, status, Toast.LENGTH_LONG).show();
|
Этот фрагмент кода использует метод getName()
чтобы сообщить имя устройства Bluetooth. Если вы ранее установили разрешение BLUETOOTH_ADMIN
, вы также можете изменить имя устройства на другое, например:
1
|
bluetooth.setName(«AndroidCoder»);
|
Шаг 6: Показать состояние Bluetooth
Метод BluetoothAdapter.getState()
используется для получения подробного описания состояния Bluetooth. Этот метод вернет одну из четырех вещей:
- STATE_TURNING_ON
- State_on
- STATE_TURNING_OFF
- State_Off
По умолчанию адаптер Bluetooth отключен, чтобы продлить срок службы аккумулятора. Приведенный выше код можно было бы изменить, добавив в него следующее состояние
1
2
|
String state = bluetooth.getState();
status = mydevicename + ” : ” + mydeviceaddress + » : » + state;
|
Вывод
Это был очень быстрый взгляд на класс BluetoothAdapter
и некоторые фундаментальные методы, используемые при начале работы с Bluetooth на Android. Приведенный выше код проверит, включен ли Bluetooth, и покажет диагностическую информацию, если она есть, и сообщение об ошибке, если это не так.
ПРИМЕЧАНИЕ. Чтобы протестировать приложения Bluetooth, необходимо запустить этот код на реальном устройстве Android. Это не будет работать в эмуляторе.