USB経由で接続されたデバイスと通信したいAndroidアプリを開発しています。このデバイスは常にデータを配信しています。これらのデータは、Android Linux シェルのプログラムで表示できます。
私の目標は、アプリでこれらのデータを確認し、その後、サービスを介して他のアプリに配信することです。
私の質問は次のとおりです。AndroidアプリからUSBポートへの接続を「開く」ことができるので、USBデバイスから送信されたデータをアプリで継続的に受信できますか? はいの場合、コードはどのようになりますか?
*編集
回答ありがとうございます。アプリ自体はコマンドラインで実行されなくなりました。そのため、実行可能ファイルはもうありませんが、Android アプリによって共有ライブラリが読み込まれます。以前はそうでしたが、アプリで NDK メソッドを使用して接続を開始し、アプリ自体でデータを表示できるようにしたいと考えています。そのため、接続がすでに開いているかどうかを確認しようとしました。
コードにいくつかの関数を追加したので、USB 接続が開いているかどうか、およびその USB デバイスへのアクセス許可があるかどうかを確認できます。
UsbManager.hasPermission(device)
itent フィルターを使用しているため、true を返します。
UsbManager.openDevice(device)
UsbDeviceConnection を返すので、そのデバイスを使用するためのアクセス権があるようです。
これまでのところ、USBデバイスによるバス接続の開始と、そのデバイスのデータ入力の取得のいずれかを受信することができません。
私のネイティブ コードには既に while(true)-メソッドがあり、実際に USB デバイスを介してデータが送信されるときにコールバックのみを使用してアプリにデータを送信するため、C コードで作業を完了させたいと考えています。
私のアプリが行うべき唯一の仕事は、バス接続を一度開いてから、C コードからのコールバックの準備を整えることです。
それは可能ですか?