0

我正在开发一个应用程序,首先我必须搜索可用的蓝牙设备并建立连接。我已经完成了这个任务。在此之后,将打开一个新的 Activity,其中有一个 Edittext 和一个 Button。我已经开发了以下代码。它没有给出任何输出。我正在使用连接设备的 MAC 地址传递数据。

.java文件...

import java.io.IOException;
import java.io.OutputStream;
import java.util.UUID;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.ContentValues;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

@SuppressLint("NewApi")
public class NewMessage extends Activity {

    Button btn;
    EditText et;
    String message1="Hello";//on button click by default

    BluetoothAdapter mBluetoothAdapter1 = null;;

    // BluetoothAdapter mBluetoothAdapter;

    public static String MacAddress;

    @Override
    public void onCreate(Bundle mSavedInstanceState) {
        super.onCreate(mSavedInstanceState);
        setContentView(R.layout.message);

        btn = (Button) findViewById(R.id.btn);
        et = (EditText) findViewById(R.id.et);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mBluetoothAdapter1 = BluetoothAdapter.getDefaultAdapter();

                byte[] toSend=message1.getBytes();

                try
                {
                    final UUID applicationUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
                    BluetoothDevice device=mBluetoothAdapter1.getRemoteDevice(MacAddress);
                    BluetoothSocket socket=device.createInsecureRfcommSocketToServiceRecord(applicationUUID);
                    OutputStream mmout=socket.getOutputStream();
                    mmout.write(toSend);
                    mmout.flush();
                    mmout.close();
                    socket.close();
                    Toast.makeText(getBaseContext(), MacAddress, 10000).show();
                }
                catch (IOException e) 
                {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }




            }
        });

    }

    /*private void sendDataToPairedDevice(String message ,BluetoothDevice device){       
           byte[] toSend = message.getBytes();
            try 
            {
                BluetoothSocket socket = device.createInsecureRfcommSocketToServiceRecord(applicationUUID);
                OutputStream mmOutStream = socket.getOutputStream();
                mmOutStream.write(toSend);
                // Your Data is sent to  BT connected paired device ENJOY.
            } catch (IOException e) {
                e.printStackTrace();
            }
        }*/

}

xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:hint="@string/hint">

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/send" />

</LinearLayout>

请帮帮我...

这是我的代码,有问题..

public void onClick(View v) {
                    // TODO Auto-generated method stub




                            mBluetoothAdapter1 = BluetoothAdapter.getDefaultAdapter();

                            byte[] toSend=message1.getBytes();

                            try
                            {

                                final UUID applicationUUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
                                BluetoothDevice device=mBluetoothAdapter1.getRemoteDevice(MacAddress);
                                BluetoothSocket socket=device.createInsecureRfcommSocketToServiceRecord(applicationUUID);
                                OutputStream mmout=socket.getOutputStream();
                                mmout.write(toSend);
                                mmout.flush();
                                mmout.close();
                                socket.close();

                            }
                            catch (IOException e) 
                            {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }





                }
            });
4

2 回答 2

1

这并不能直接回答您的问题,但我注意到的一件事是10000您的持续时间参数Toast.makeText()是无效的。它只接受Toast.LENGTH_SHORTor Toast.LENGTH_LONG,实际上只是 0 或 1。检查文档:http: //developer.android.com/reference/android/widget/Toast.html

[编辑] 我在您的代码中看到的另一个错误是您将一个空传递StringgetRemoteDevice. 尝试做getRemoteDevice("00001101-0000-1000-8000-00805F9B34FB"),看看会发生什么。再次阅读文档: http: //developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#getRemoteDevice(java.lang.String)

于 2013-02-28T10:16:17.737 回答
0

包括连接功能。

BluetoothSocket socket=device.createInsecureRfcommSocketToServiceRecord(applicationUUID);
socket.connect();  // here
OutputStream mmout=socket.getOutputStream();
于 2014-01-31T07:31:11.487 回答