0

最初に利用可能な Bluetooth デバイスを検索して接続する必要があるアプリケーションを開発しています。私はこのタスクを完了しました。この後、1 つの Edittext と 1 つの Button がある 1 つの新しいアクティビティが開きます。以下のコードを開発しました。それは何の出力も与えていません。接続されたデバイスの MAC アドレスを使用してデータを渡しています。

ジャバファイル...

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

これはあなたの質問に直接答えるものではありませんが、私が気付いていることの 1 つは、無効な10000の期間パラメーターとして持っていることです。orToast.makeText()のみを受け入れます。実際には 0 または 1 です。ドキュメントを確認してください: http://developer.android.com/reference/android/widget/Toast.htmlToast.LENGTH_SHORTToast.LENGTH_LONG

[編集] あなたのコードに見られるもう 1 つのエラーは、 に空Stringを渡すことgetRemoteDeviceです。やってみて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 に答える