如何通过Android中的蓝牙将短信发送到配对的设备



在我的应用中,我想通过蓝牙发送和接收短信。我可以在我的列表视图中看到配对设备名称和地址的列表。但是当我试图将文本发送到配对设备时,什么也不会发生。在其他设备中,没有收到文本。

这是我将消息发送到配对设备的代码。

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

如果您是使用蓝牙API的新手,那么蓝牙样本实际上是完美的选择。

假设您仅在应用程序中使用一项活动,即蓝牙类别:

用于将文本发送到您已连接到的设备,请使用蓝牙类中的" sendmessage(字符串消息)"方法发送文本。

对于接收和处理文本,您还会在蓝牙chat类中的某个地方找到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);

请参阅重新字符串?

这是您从其他设备收到的文本,现在您可以根据需要处理。

然后,只需更改蓝牙类类引用的主布局,然后在蓝牙聊天中注释或删除具有错误的零件,这些零件实际上是UI中您已删除或更改的零件。

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

相关内容

  • 没有找到相关文章

最新更新