鈴木です。
Android 3.1以上のフレームワークでUSB Host APIがサポートされており、このAPIを使ってJavaでUSBシリアル通信のドライバを実現しているプロジェクトがいくつかあります。
これらは個々のアプリにライブラリとして組み込むことでシリアル通信させることができます。
・FTDI公式ドライバ d2xx.jar
http://www.ftdichip.com/Android.htm
対応プロトコル
-FTDIのみ
・Physicaloid Library
https://github.com/ksksue/PhysicaloidLibrary
対応プロトコル
-FTDI全般
-CDC ACM
-CP210x
・usb-serial-for-android
https://github.com/mik3y/usb-serial-for-android
対応プロトコル
-FT232R
-CDC/ACM serial services
-CP2102
注意点としては、Android 3.1以上であればUSB Host APIが搭載されているはずなのですが
ベンダーによっては不要と判断されてか搭載されていない端末があります。これらは上記ライブラリは使えません。
中華パッドに多いようです。それ以外で言うとNexus 4にもありません。
以上
鈴木です。
そうですね。残念ながらD70GNには搭載されていないと思います。
USB Host Viewerで調べられたのはよい判断だと思います。
以上
また、ちなみに、USB Host Viewerでは、Nexus7、D70GNとも、FT232 USB Serial(UARTC)ICと表示されました。しかし、D70WはNot Found devicesとしか表示されませんでした。以上から、Nexus7とD70GNについては、USB HOST APIを搭載しているが、D70Wは搭載していないという認識でいますが、正しいでしょうか?
Androidでシリアル通信をしたいのですが、FTDIが認識しない場合があるようです。ドライバーをカーネルに組み込んでいない場合でも可能な方法があれば教えてほしいです。
Ryouheiさんプロジェクトのlibsディレクトリにd2xx.jarファイルは入っていますか?Physicaloidライブラリは内部でFTDI公式のd2xx.jarを使っており、UartFtdiクラスの参照先がd2xx.jarになっています。おそらくd2xx.jarファイルがないためClassNotFoundExceptionエラーとなっていると考えられます。
前々回のメールの内容を見落としていましたが、Nexus 7で通信ができないというのは、単純にボーレートなどの通信設定が原因ということはないでしょうか?Nexus 7で通信できなかったという報告は受けたことはなく、そもそもボクの手元の動作確認環境がNexus 7なのでアプリに原因があるとは考えにくいです。回路側は問題ないとのことなので、あとは通信設定が原因だと思います。
また余計なお世話かもしれませんが、Ryouheiさんの質問は非常に情報が少なく、今はライブラリの作者が回答しているためある程度は情報が補完されていますが、そうでない人からこの質問でドンピシャの回答が得られたら画面の先の相手は悟りを開いた人物か、水をぶどう酒に変えただれかさんだかと思います。例えば、エラーメッセージはコピペしたほうがいいと思います。FTDIのチップもしくはパッケージの型番といった基本情報はそもそもの誤解を避ける情報になり得るかもしれません。月並みですがこのあたりの話は以下の文書にまとめられています。技術系メーリングリストで質問するときのパターン・ランゲージhttp://www.hyuki.com/writing/techask.htmlこの文書の内容が絶対のルールだとは思っていませんし、ボクとしては質の良い情報共有を楽しむための知恵ぐらいに捉えていますのでぜひともご協力を。以上
2014年6月15日 7:39 Ryouhei Tomo <tomor...@gmail.com>:
鈴木さん、石田さん、ありがとうございました。あれから、勉強して、鈴木さんの作られたPhysicaloidを試しています。
USB HOST APIで、FTDIを認識したD70GNを使って試していますが、最初のOpenのところで、UartFtdiクラスを呼び出しているところで、ClassNotFoundExceptionエラーが出てしまっています。原因がわかりますでしょうか?
2014年6月12日木曜日 19時07分12秒 UTC+9 Ryouhei Tomo:Androidでシリアル通信をしたいのですが、FTDIが認識しない場合があるようです。ドライバーをカーネルに組み込んでいない場合でも可能な方法があれば教えてほしいです。
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsubscribe...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。