通过蓝牙发送一个字节

时间:2014-06-19 15:29:17

标签: android bluetooth

我想知道如何通过蓝牙以二进制形式发送一个字节。 目前我使用此代码:

mSendButton = (Button) findViewById(R.id.button_send);
    mSendButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // Send a message using content of the edit text widget
            TextView view = (TextView) findViewById(R.id.edit_text_out);
            String message = view.getText().toString();
            sendMessage(message);
     }
});

只有这样才能发送字符串而不是字节。

感谢您的帮助。

这是来源:

private void sendMessage(String message) {
    // Check that we're actually connected before trying anything
    if (mChatService.getState() != BluetoothChatService.STATE_CONNECTED) {
        Toast.makeText(this, R.string.not_connected, Toast.LENGTH_SHORT).show();
        return;
    }

    // Check that there's actually something to send
    if (message.length() > 0) {
        // Get the message bytes and tell the BluetoothChatService to write
        byte[] send = message.getBytes();
        mChatService.write(send);

        // Reset out string buffer to zero and clear the edit text field
        mOutStringBuffer.setLength(0);
        mOutEditText.setText(mOutStringBuffer);
    }
}

1 个答案:

答案 0 :(得分:0)

根据您的源代码,您正在使用write方法发送字节数组。如果你打电话给mChatService.write(byte[]data)所以打电话给这样的话,应该有效:

mChatService.write(new byte[]{5}); 

其中5是您要发送的字节值,换句话说,对sendMessage方法的调用只是将您的String转换为字节数组,然后发送到蓝牙服务。