2011-08-11 4 views
0

USBシリアルデバイスが接続されたルート型Androidデバイスがあります。デバイスは「/ dev/ttyUSB5」と表示されますAndroidでjavax.commをインポートすることはできますか?シリアルデバイスを開きたい

私はシリアルポートを開いてそこから読み書きしたいと思います。まずはAndroidの中で.../dev/ttyUSB5を読んだり開いたりすることができますか?または、アプリケーション内で/ devに触れることを禁止されますか?/devの内容に触れられない場合、これはすべて無関係です。

しかし、可能であれば、javax.commをインポートしてシリアルデバイスと通信できるかどうか疑問に思っています。

現在のところ、私はこれを回避するために、シリアルポートを開くネイティブCアプリケーションを生成してから、ソケットを使用してJavaのシリアルポートに読み書きします。しかし、Javaですべてを行う方がはるかに良いでしょう。

答えて

2

Android内では、/ dev/ttyUSB5を読み書きできるようになりますか?または、アプリケーション内で/ devに触れることを禁止されますか?

通常のSDKアプリケーションにはこの権利があるかどうかはわかりません。ルートデバイスとして動作している場合は、rootとして動作しているアプリケーションになります。

ただし、可能であれば、私はシリアルデバイスと通信できるようにjavax.commをインポートすることが可能かどうか疑問に思っています。

直接ではありません。ビルドツールでは、java.*javax.*のクラスをインポートする必要はありません。そして、私は標準的なJava上でさえも、どれくらい迅速にjavax.commがネイティブコードに落ちるか分かりません。

Apache Harmonyの実装がjavax.commであるかどうか試してみてください。ニーズに合っていると思われる場合は、関連するクラスをコピーして、新しいパッケージにリファクタリングしてください(例:org.gynchis.comm)。しかし

最高全体的な答えは、可能ならば、私は、ハードウェアの男じゃないAPIレベル10で追加 the ADK and the new USB classesに固執しようとすることですので、あなたのニーズが合致するには何があれば、私は考えていますサポートを受けるために十分なAndroidバージョンを搭載したデバイスをお持ちの場合は、

0

はい/ dev/tty *を使用してシリアルポートにアクセスできます。これをチェックしてください: serialport-api私はそれをテストしましたが、もちろん、/ dev/tty *に適切な権利が設定されている必要があります。これはinit.rcファイル(chmod 0666/dev/ttyUSB5)にあります。組み込みシステムで作業している場合は、簡単に修正できます。 「市販されているタブレットの上で」作業したい場合は、もっと複雑です。唯一の方法はそれを根絶することだと私は信じています。そのパッケージの唯一の欠点は、入力ストリームを絶えずポーリングするスレッドを使用しているように思えます。これは、CPU /バッテリー効率があまり高くないと信じさせています。私は、受信側でデータが利用可能なときに私のスレッドを起きさせる何かを得る方法を探しています。

関連する問題