如何从Android应用程序将文本文件发送到HC 05蓝牙

时间:2018-10-19 04:42:15

标签: bluetooth microcontroller 8051

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

1 个答案:

答案 0 :(得分:0)

如果您使用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();
}

获得MAC地址后,您可以得到HC-05:

BluetoothDevice device = adapter.getRemoteDevice(MACaddress);

并可以创建套接字:

BluetoothSocket socket = device.createRfcommSocketToServiceRecord(myUUID);

myUUID是您可以使用的UUID:

myUUID = UUID.fromString("Your UUID string");

最后,启动套接字:

socket.connect();

接下来,您可以使用InputStreamOutputStream与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();

注意:您一定不要忘记例外。