RooTooth がインストールされた iRobot があります。これは、Bluetooth からシリアルへのコンバーターです。シリアルポートと同じように動作し、データはそのように受信されると言われています。端末プログラムを使用して、シリアル ケーブル経由でシリアル コマンドを端末プログラムに直接送信できましたが、問題なく動作しています。
また、作成したアプリを使用して、携帯電話から受信した bluetooth コマンドを監視しているコンピューターにコマンドを送信し、意図したとおりにそれらを受信することもできます。
ただし、携帯電話から rootooth に送信しても何も起こりません。コマンドの送信方法に何か問題がありますか? 以下に示すのは、私がそれを行う方法です。
これはハンドラー内にあります。
case SUCCESS_CONNECT:
ConnectedThread connectedThread = new ConnectedThread((BluetoothSocket)msg.obj);
String s = "128 131";
byte[] command = s.getBytes();
connectedThread.write(command);
Toast.makeText(getApplicationContext(), s, 0).show();
s = "137 0 100 128 0";
byte[] command1 = s.getBytes();
connectedThread.write(command1);
Toast.makeText(getApplicationContext(), s, 0).show();
これは私の write() 関数です
public void write(byte[] bytes) {
Log.i(tag, "In write");
try {
mmOutStream.write(bytes);
} catch (IOException e) { }
}
問題はフォーマットに違いありませんか?ここでの経験がある人なら誰でも、あなたの助けをいただければ幸いです!
最近、私はこれを試みました:
String [] s = new String[2];
s[0] = "128";
s[1] = "131";
for(int i = 0; i < s.length; i++){
byte[] command = s[i].getBytes();
connectedThread.write(command);
Thread.yield();
}
String [] t = new String[5];
t[0] = "137";
t[1] = "0";
t[2] = "100";
t[3] = "128";
t[4] = "0";
for(int i = 0; i < t.length; i++){
byte[] command = t[i].getBytes();
connectedThread.write(command);
Thread.yield();
}
「/n」文字列を含むこの最近のバージョンも試しましたが、何もしませんでした。