1

別のBluetoothデバイスにビットを継続的に送信するアプリケーションをAndroidで作成したいと考えています。私はすべてをやりましたが、ビットまたは単一の文字を送信する方法がわかりません.Bluetoothデバイスを受信するとテキストメッセージも機能し、LEDをオンまたはオフにするなどのタスクを実行します.

リモート Bluetooth デバイスは linvor bluetooth です。

私の現在のコードは次のとおりです。

 import java.io.IOException;
import java.util.UUID;

import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;


public class ConnectThread extends Thread {
    private final BluetoothSocket mmSocket;
    private final BluetoothDevice mmDevice;

    public ConnectThread(BluetoothDevice device) {
        // Use a temporary object that is later assigned to mmSocket,
        // because mmSocket is final
        BluetoothSocket tmp = null;
        mmDevice = device;

        // Get a BluetoothSocket to connect with the given BluetoothDevice
        try {
            // MY_UUID is the app's UUID string, also used by the server code
            tmp = device.createRfcommSocketToServiceRecord(UUID.fromString("device uuid"));
        } catch (IOException e) { }
        mmSocket = tmp;
    }

    public void run() {
        // Cancel discovery because it will slow down the connection
        MyService.mBluetoothAdapter.cancelDiscovery();

        try {
            // Connect the device through the socket. This will block
            // until it succeeds or throws an exception
            mmSocket.connect();
        } catch (IOException connectException) {
            // Unable to connect; close the socket and get out
            try {
                mmSocket.close();
            } catch (IOException closeException) { }
            return;
        }

        // Do work to manage the connection (in a separate thread)
        //manageConnectedSocket(mmSocket);
    }

    /** Will cancel an in-progress connection, and close the socket */
    public void cancel() {
        try {
            mmSocket.close();
        } catch (IOException e) { }
    }
}

現在、このクラスのオブジェクトを初期化しようとするとクラッシュします。

4

2 に答える 2

0

Gabe Sechan が言ったように、出力ストリームを作成してから、出力ストリームの書き込みメソッドを呼び出します。

private final OutputStream mmOutStream;
\\ other lines of code ...
mmOutStream = mmSocket.getOutputStream();

/**
     * Write to the connected OutStream.
     * @param buffer  The bytes to write
     */
    public void write(byte[] buffer) {
        try {
            mmOutStream.write(buffer);
            }
        catch(IOException e)
        {
            Log.e(TAG, "Exception during write", e);
        }
   }

Android をインストールした場所から Bluetooth チャットの例を表示することもできます。android-sdk\samples\android-7\BluetoothChat にあります。これがapi 7のバージョンです。

それが役に立てば幸い。

于 2012-10-31T16:40:56.750 に答える
0

ソケットを接続したら、mmSocket.getOutputStream() を呼び出します。これにより、出力ストリームが取得されます。次に、Java の他の出力ストリームと同じように書き込みます。

于 2012-10-31T16:14:33.903 に答える