Bluetooth 如何从android应用程序向HC 05蓝牙发送文本文件

Bluetooth 如何从android应用程序向HC 05蓝牙发送文本文件,bluetooth,microcontroller,8051,Bluetooth,Microcontroller,8051,我的HC 05蓝牙模块在接收端与8051连接。 我想使用android mobile将简单文本文件发送到HC 05模块。 我该怎么做呢?如果您使用Java 首先,您应该获得默认的蓝牙适配器: BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); 接下来,您应该获得HC-05的MAC地址,您只需在手机蓝牙设置的连接列表中进行检查,或者您可以在应用程序中扫描附近的设备并检查它们的名称: /* Check HC-05 in

我的HC 05蓝牙模块在接收端与8051连接。 我想使用android mobile将简单文本文件发送到HC 05模块。 我该怎么做呢?

如果您使用Java

首先,您应该获得默认的蓝牙适配器:

BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
接下来,您应该获得HC-05的MAC地址,您只需在手机蓝牙设置的连接列表中进行检查,或者您可以在应用程序中扫描附近的设备并检查它们的名称:

/* 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();
}
并可以创建套接字:

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();

注意:您不能忘记异常。

到目前为止您做了什么?我可以将单个字节发送到HC 05。因此,沟通是恰当的。
inputStream.close();
outputStream.close();
socket.close();