Если вы используете Java.
Прежде всего, вы должны получить адаптер Bluetooth по умолчанию:
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
Далее вы должны получить MAC-адрес вашего HC-05, вы можете просто проверитьэто в списке подключений в настройках Bluetooth вашего телефона, или вы можете сканировать близлежащие устройства в вашем приложении и проверить их имена:
/* Check HC-05 in paired devices */
public void findInPairedDevices() {
Set<BluetoothDevice> pairedDevices = adapter.getBondedDevices();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
if (device.getName().equals("HC-05")) {
MACaddress = device.getAddress();
}
}
}
}
/* Scan nearby devices for HC-05 */
public void findInAvailableDevices() {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
if (device.getName().equals("HC-05")) {
MACaddress = device.getAddress();
adapter.cancelDiscovery();
}
}
}
};
activity.registerReceiver(broadcastReceiver, filter);
int MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION = 1;
/* Permission for Bluetooth search */
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION);
adapter.startDiscovery();
}
После получения MAC-адреса вы можете получить свой HC-05:
BluetoothDevice device = adapter.getRemoteDevice(MACaddress);
И может создать сокет:
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(myUUID);
Где myUUID
- это ваш UUID, который вы можете получить используя:
myUUID = UUID.fromString("Your UUID string");
Наконец, запустите сокет:
socket.connect();
Далее вы можете использовать InputStream
и OutputStream
для связи с HC-05:
if (socket.isConnected()) {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
}
Для чтения входного сообщения:
byte[] buffer = new byte[256];
int bytes;
bytes = inputStream.read(buffer);
String inMsg = new String(buffer, 0, bytes);
И для записи выводасообщение:
String outStr = "Meow";
outputStream.write(outStr.getBytes());
После работы вы должны закрыть потоки и сокет:
inputStream.close();
outputStream.close();
socket.close();
Примечание: вы не должны забывать об исключениях.