データを一定のストリームを吐き出すBluetoothデバイスからデータを読み取るための簡単なスクリプトをJavaで作成しようとしています。私はPythonを使って私の問題を解決することができるので、デバイスが動作していることを知っていますが、私は最終的にJavaを使いたいと思います。InputStream.available()は、データを常時ストリームするBluetooth RFCOMMサーバーをリッスンするときにバイトを報告しません。
私はいくつかのサンプルコードを持っていますが、readコマンドでハングします。問題は、読み取り()の呼び出しが可能なデータが存在しないと考えているということのようだということ
// Ref http://homepages.ius.edu/rwisman/C490/html/JavaandBluetooth.htm
import java.io.*;
import javax.microedition.io.*;
//import javax.bluetooth.*;
public class RFCOMMClient {
public static void main(String args[]) {
try {
StreamConnection conn = (StreamConnection) Connector.open(
"btspp://00078093523B:2", Connector.READ, true);
InputStream is = conn.openInputStream();
byte buffer[] = new byte[8];
try {
int bytes_read = is.read(buffer, 0, 8);
String received = new String(buffer, 0, bytes_read);
System.out.println("received: " + received);
} catch (IOException e) {
System.out.println(" FAIL");
System.err.print(e.toString());
}
conn.close();
} catch (IOException e) {
System.err.print(e.toString());
}
}
}
注意。しかし、Bluetoothデバイスは常にデータを吐き出します(センサーです)。 、助けてください
In [1]: import bluetooth
In [2]: address = "00:07:80:93:52:3B"
In [3]: s = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
In [4]: s.connect((address,1))
In [5]: s.recv(1024)
Out[5]: '<CONFIDENTIALDATAREMOVED>'
ありがとう:ここで仕事をして、私のPythonコードです!
また、私はこの問題があります – Pooya