【问题标题】:how to send text file to HC 05 bluetooth from android application如何从 android 应用程序将文本文件发送到 HC 05 蓝牙
【发布时间】:2018-10-19 04:42:14
【问题描述】:

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

【问题讨论】:

  • 到目前为止你做了什么?
  • 我可以将单个字节发送到 HC 05。所以通信正常。

标签: bluetooth microcontroller 8051


【解决方案1】:

如果你使用 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);

并且可以创建socket:

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

注意:你不能忘记例外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2020-04-15
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多