如何在安卓手机上通过蓝牙向配对设备发送短信?

3

在我的应用中,我想通过蓝牙发送和接收文本消息。我可以在我的列表视图中看到已配对设备名称和地址的列表。但是当我尝试向已配对的设备发送文本时,没有任何反应。在其他设备上也没有收到文本。

这是我向已配对设备发送消息的代码。

private void sendDataToPairedDevice(String message, String adress) {
        byte[] toSend = message.getBytes();
        try {
            BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(adress);
            // BluetoothSocket socket
            // =device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"));
            BluetoothSocket socket = null;
            Method m = null;
            try {
                m = device.getClass().getMethod("createRfcommSocket",
                        new Class[] { int.class });
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                socket = (BluetoothSocket) m.invoke(device, 1);
            } catch (Exception e) {
                e.printStackTrace();
            }

            OutputStream mmOutStream = socket.getOutputStream();
            mBluetoothAdapter.cancelDiscovery();
            socket.connect();
            mmOutStream.write(toSend);
        } catch (Exception e) {
            Log.d("TAG", "Exception during write", e);
        }
    }

短信只能通过短信网关发送,不能通过蓝牙发送。 - Ryan
1
我想通过蓝牙发送它。好的,假设我想发送其他东西,但只能通过蓝牙发送。我已经成功获取了所有蓝牙设备的名称和地址,现在我想将某些内容发送到特定的设备。 - Ekanta Swain
1
@user3243163 我的假设是 文本消息 指的是短信,而不是除短信以外包含文本的字面消息。 - Ryan
@KanchaEkant,你是从BluetoothChat示例应用程序中获取这段代码的吗? - user3243163
这不是短信的问题。如果您能帮我处理一些蓝牙相关的事情,那我会很高兴的。 - Ekanta Swain
显示剩余7条评论
1个回答

2

如果您是第一次使用蓝牙API,那么bluetoothchat示例实际上是一个非常好的使用样例。

假设您的应用程序仅使用一个Activity,即BluetoothChat类:

要将文本发送到连接的设备,请使用BluetoothChat类中的“sendMessage(String message)”方法发送文本。

至于接收和处理文本,您还将在bluetoothchat类中找到handleMessage(Message msg)方法,然后进入此部分:

case MESSAGE_READ:
            byte[] readBuf = (byte[]) msg.obj;
            // construct a string from the valid bytes in the buffer
            String readMessage = new String(readBuf, 0, msg.arg1);

看到readMessage字符串了吗?

这是您从其他设备接收到的文本,现在您可以按照自己的意愿处理它。

然后简单地更改BluetoothChat类引用的主要布局,然后在BluetoothChat聊天中,要么注释或删除具有错误的部分,实际上将是您已删除或更改的UI部分。

我知道代码可能听起来很乱,但这是尽快使用它并观看视频教程或文本教程几个小时只会使它更加复杂的最简单方法,相信我,我以前尝试过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接