質問: ### 前提・実現したいこと 以下の環境下でAndroidアプリから基盤に直接接続されているIrDAに対し、Uart通信(UartポートをOpenし、read/writeを行いたい)を行いたいです。 * 基盤:i.MX6Q * OS:Android 5.1.1 ### 困っていること どのようにUartポートにアプローチをすれば良いか、見当がつきません。以下2点が知りたいです。 1. 下記の試した内容から、jniから直接コマンドを叩く方針が最も現実的なのでしょうか? 2. 上記質問に絡み、非root化端末でもUartポートのopen、read/writeはできるものなのでしょうか? ### 試したこと * UsbManagerからIrDAのUartポートを探し接続しようとしましたが、IrDAのUsbDeviceは見つかりませんでした。 UsbManagerを使用するJavaライブラリも同様の結果でした。 * javaからファイルディスクリプタをjniに渡し、直接コマンドをたたいてUartポートをopenを試しました。 しかし、端末が非root化端末であるためopenに失敗します。 * Android Things APIはAndroid 5.1.1では存在しないため利用できません。 アプリにAndroid Thing APIを追加したapkを作成してインストールを試みましたが、インストール時点でINSTALL_FAILED_MISSING_SHARED_LIBRARYとなりインストールできませんでした。
回答: > > 非root化端末でもUartポートのopen、read/writeはできるものなのでしょうか? > > > できません。それをしたいなら、既存のドライバでそういう機能を持つものを探すテしかないでしょうね。 まあ、新たにそれ用のドライバを作ってそれ経由でアクセスするテでしょうけど、そのドライバを入れる手段があるのやらどないやら。