Bluetooth アプリを作成しているときに、理解できない予期しない問題が発生しました。PC はサーバー (java+bluecove) として機能し、Android フォンはクライアントとして使用されます。クライアントがサーバーに接続し (サーバー側のメッセージで確認されます)、サーバーがテキスト サンプルを送信すると、正常に動作します。次に行うことは、サーバーにメッセージを送信することですが、その部分はまだ機能していないようです。ボタンをデザインしました。そのタスクは、Bluetooth 経由で短いテキスト メッセージを送信することです。サーバーはメッセージを受け取りません。
アクティビティ送信メッセージの一部:
public void write(String message) {
OutputStreamWriter streamWriter = new OutputStreamWriter(pOutput);
try {
streamWriter.write(message);
streamWriter.flush();
} catch (IOException e) {
errorLog += "[SP:"+e.getMessage()+"]\n";
}
}
ただし、もう 1 つ、クライアント アプリケーションがすべてのアクティビティを終了すると、メッセージがサーバーに送信されます。それを知って、streamWriter.close()
ストリームをフラッシュした後に追加するとうまくいくかどうかを確認しました。動作します(メッセージが送信されます)が、close()
メソッドもソケットを閉じるので、私には合いません。
問題がわかりません。誰か例を挙げたり、方向性を示してくれませんか? ソケットに関するトピックがありましたが、wifi 接続の問題を解決していましたが、あまり役に立たないようです。