BluetoothChat サンプル アプリケーションを使用するアプリケーションに取り組んでいます。私の主な活動では、外部ページをロードする webview を使用しています。外部ページをロードする JavaScript を介して Bluetooth 機能を処理しています。基本的に、次の行を介して Javascript とネイティブ コード間のブリッジを追加します。
myWebView.addJavascriptInterface(new WebAppInterface(this,myWebView), "Android");//I pass a refference to the context and a refference to the webview.
WebAppInterface は、Javascript から呼び出すことができるすべてのパブリック メソッドを持つクラスです。このクラスには、enableBluetooth、disableBluetooth、listBoundedDevices、connect などのメソッドがあります。
BluetoothChat サンプル アプリケーションの BluetoothSerialService クラスを使用しています。私のデバイスは、コマンドを受信し、入力に応じて異なる方法で応答する組み込みデバイスに接続する必要があります。例は次のようになります: webview のボタンを押すと、次のネイティブ コードが呼び出されます。
while(true){
out.write(requestKey);//send command - where "out" is the OutputStream
key = in.read();//get response - where "in" is the InputStream
if(key==KEY1){
out.write(activateRFID);//send command - activateRFID
rfidTag = in.read();//get response - RFID Tag
updateUI(rfidTag);//perform function - update the UI with the tag
}
else if(key==KEY2){
out.write(deactivateRFID);//send command - deactivate RFID
response = in.read();//get response
}
else if(key==KEY3){
out.write(anotherCommand);//send command -
response = in.read();//get response
}
}
私が達成しようとしているのは、コマンドを別のデバイスに送信し(押されたキーを要求)、機能を実行することです。これは常に発生する必要があります (押されたキーのデバイスをプールし、特定の機能を実行します)。
デバイスをプールする 1 つの SINGLE THREAD を開始するにはどうすればよいですか (OutputStream に書き込み、InputStream からの応答を読み取ります)。BluetoothChat サンプル アプリケーションの動作は少し異なります。BluetoothChatSevice.write() を呼び出すたびに、mHandler を介して UI にメッセージを送信する ConnectedThread 実行メソッドを介して応答を取得します。
すべての提案を歓迎します。