Как отправить текстовый файл на HC 05 Bluetooth из приложения Android - PullRequest
0 голосов
/ 19 октября 2018

Мой модуль Bluetooth HC 05 соединен с 8051 на приемной стороне.Я хочу отправить простой текстовый файл с помощью android mobile в модуль HC 05.Как я мог это сделать?

1 Ответ

0 голосов
/ 27 октября 2018

Если вы используете 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();

Примечание: вы не должны забывать об исключениях.

...