treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

USBホストアダプタを購入

本日はAndroid端末でUSBホストアダプタを購入してちょっと試してみた結果をご報告します。

対象の端末はXperia AX、SO-01Eというちょっと古めのAndroid 端末です。
もう以前ほど使うつもりもないのですが、ちょっとした動作確認やソニー固有のアプリを使うために格安SIMで環境を残しています。

USBホスト機能についてちょっとご説明します

この機種では、説明書や「設定」画面を開いてもUSBホスト機能を確認することができませんでした。
ですが調べてみると、USBホスト機能はホスト機能&クライアント機能を切り替えて動作することが可能なOTGなる機能がAndroidには搭載されている機種があるようです。OTGはOneThe-Goの略語らしい。
でこのOTGに対応しているかどうかはMicroUSB端子の形が「台形」か「長方形」かで区別できるそうです。長方形ならOTG対応のスマホだと判断してもよさそうです。
Xperia AXのMicroUSB端子を確認してみるとこのとおり長方形、いままで気づいていなかったけど、USBホスト機能はつかえるんじゃないか、と思えてきました。

対象のAndroid OSバージョンは4.1.2なのでAndroid のUSBホストサポートがOSで標準サポートされているバージョンであることは間違いないです。
ものは試しということで、購入したUSBホストアダプタをMicroUSB端子に接続して動作を実際に確認してみました。

実践してみます

さっそく入手したUSBホストアダプタでMicroUSB端子にケーブルを接続します。

確認したのは、

  •  USBトラベルキーボード ウルトラナビ付(モデル名:SK-8845)
  •  USB NIC、Planex USB-LAN100R

の2つを接続して確認してみました。

接続は
Xperia MicroUSB端子>-------<USBホスト機能対応ケーブル>-------<トラベルキーボード
という具合に接続します。ちょうどUSBホスト機能対応ケーブルがMicroUSB端子と通常のUSB(Aタイプ)端子の変換ケーブルのような役割を果たしているように見えます。(が実際にはUSBホスト機能を実現するのはこの専用ケーブルありき、ということらしいです。なので、このUSBホスト機能対応ケーブルはご利用のAndroid 端末での専用ケーブルでないとうまく動作してくれない、という制限があるらしいのです。)
端子、って重要なんですね。細やかな違いなのでいままで気づかなかったのですが、台形か長方形かで自動的にホスト機能にモードを切り替えるか充電やPC接続のモードに切り替えるか、という判別を実行してそれ専用のモードに自動的に内部で切り替えているらしいのです。

肝心の接続結果は、

  • USBトラベルキーボード ウルトラナビ付(モデル名:SK-8845)を接続したところ、マウスカーソルが画面に表示され、スマホ画面をキーボード&トラックポイントで操作することができました。おまけにセンターボタンでスクロールも可能です。(センターボタンのスクロールはちょっと使い勝手がPCとは異なりますが、スクロールはできます。)
  • USB NIC、Planex USB-LAN100Rを接続しましたがDHCP環境でIPを取得できなかったので、動作しなかったものと思われます。
    Linux対応のUSB NICを使ったのでAndroid 端末でも利用できるかなぁとワクワクしながらXperiaに対して有線LANを接続したのですが、まったく反応しませんでした

    f:id:treedown:20160130021331p:plain


キーボードがうまくいった反面、USB NICが認識されず有線LANでDHCPサーバからIP取得もされなかったというのは残念でした。有線LANが使えるようになったらまた別の使い方が考えれるようになるんですけどね。残念ながらUSBで有線LAN経由のスマホをネットワークに接続、というのは失敗です。

おそらく、これが原因

これはおそらくドライバがAndroid 端末に内蔵されているか内蔵されていないかの差じゃないか?と考えられます。
つまり USBトラベルキーボード ウルトラナビ付、はドライバがAndroid 端末に内蔵されていて使えるのだが、USB NIC、Planex USB-LAN100Rはドライバが内蔵されていない、元々USB NICはドライバをそれほどの種類カバーしていないじゃないか?という推測です。
どうやらAndroid ではドライバが組み込まれていないデバイスの場合認識せず、これを認識させるためになにか後から実行できる方法すらない(認識させる手がない)、という特徴があるため、認識しないものではどうしょうもない、ということです。

以前にThinkPad Bluetooth ワイヤレス・トラックポイント・キーボード(モデル名:KT-1255)をBluetooth経由で接続して使ってみたときにも今回同様に特に何もしなくても接続するだけで画面上にマウスカーソルが表示されトラックポイントにキーボードのキーぐらいはなんのひねりもなく自然に認識していました。

Android 端末において、ドライバ、が外付けUSBデバイスを利用するときの大きなハードルとなるみたいですね。
と、いうことはAndroid対応を謳うUSBNIC製品を購入して試してみたいところですね。もしかするとXperia AXで有線LANを使うことができるかもしれないです。
お金に余裕ができたところで今一度試してみようかなと思います。