android端末同士のファイル送受信
更新日時:2013年01月16日
モバイル
/ Android
ケーブルレスでサクっと出来る方法ないかなと検討してまして。
いろいろ方法はあると思いますが自分が最終的に落ち着いた方法。
赤外線とBluetootheは自分が所持している端末でもついてない機種もあるので(とゆーか今使ってるXperia GXについてない)やはりどの端末にも確実についてるのは無線LANなのでまずそこから検討。
まず考えたのがadhocによる直接接続。
adhocでP2P出来てしまえば簡単なんですが、androidの弱点で基本adhocって使えないんですよね(root化していぢれば可能らしい)。
一応、自分の持ってる端末は半分はroot化済みなんでその方向も考えたんですが、やっぱりメインで使ってるGXで使えないと意味がないってことでその方法はナシに。
次にテザリングアプリを使ってルータ化して同一ネットワークに接続させたあとにFTPなりで交換すればいいのでは?と思いつきました。
ところが出回っているテザリング用のアプリはたくさんあれど、そのほとんどがadhocにしか対応していない(PCをテザリングする前提のため)。
いくつかinfrastructureに対応してるテザリングアプリもあったんですがXperiaの基本システムとの相性なのかどれもまともに動きませんでした。
これじゃandroid同士繋げないじゃん…って思ってたんですがよくよく思い出してみるとandroid標準のテザリング機能あるじゃん…。
ってことで標準テザリングを使ってみたらあっさりうまくいきました。
自分の方法は以下
1.ホストにする側のandroid端末でWifiテザリングを設定
android2.3とかなら「設定」→「無線とネットワーク」→「テザリングとポータルスポット」あたりから。
4以上は「設定」→「その他」→「テザリング」あたりから。
端末によっても違うと思いますが。
2.ホストにする側でFTPサーバを起動
自分はSwiFTP使いました。
設定も楽ですぐ使えて便利です。
テザリングを実行してる最中は自身がクライアントではないので特殊なデバイスになっているらしく(たしかwlan0とかになってるはず)起動すると自ホストのIPがunknownとなってますが、ちゃんと動いてるようです。
3.ホスト側にする側のIPを調べる
実はほとんどのIP調べる系アプリが無線LANのデバイスからIP取ってくるように作られてるので調べられなかったり。
NetInfomationと言うツールだと存在するネットワークデバイス全部検索して表示してくれるので調べられました。
うちのXperiaGXの場合は「192.168.43.0/255.255.255.0」のネットワークでした。
で、ホスト側は「192.168.43.1」となる模様。
4.クライアント側のandroid端末でホストと側端末へ普通に無線LAN接続
単に無線LAN接続するのと同じでホスト側の端末探して接続します。
5.クライアント側のandroid端末にFTPクライアントアプリを入れて接続
最後にクライアント側の端末から接続します。
自分は専用のFTPソフト入れるほどでもないと思ったのでESファイルエクスプローラのFTP機能使って繋ぎました。
ちなみにSwiFTPだとデフォルトのポート21ではなく2121になってるので接続する時のポート指定に注意。
ただしこの方法ひとつだけ弱点があって、標準テザリング機能はWAN側のデータ通信がONになってないと動きません。
データ通信OFFの状態だとテザリング機能がネットワークエラーで終了してしまいます。
まぁ、わざわざホスト側のデータ通信OFFにする必要があるかと言われると普通はないと思うのですが完全にローカルのみで動作するわけではないのでそこだけ注意で。
上記方法だとどちらかがWifiテザリング使えれば利用出来て(現状、ほぼすべてのキャリアの端末で使えるのではないかと)、それなりにデカいデータも無線LANでやりとりできるのでなかなか便利かと思います。
いろいろ方法はあると思いますが自分が最終的に落ち着いた方法。
赤外線とBluetootheは自分が所持している端末でもついてない機種もあるので(とゆーか今使ってるXperia GXについてない)やはりどの端末にも確実についてるのは無線LANなのでまずそこから検討。
まず考えたのがadhocによる直接接続。
adhocでP2P出来てしまえば簡単なんですが、androidの弱点で基本adhocって使えないんですよね(root化していぢれば可能らしい)。
一応、自分の持ってる端末は半分はroot化済みなんでその方向も考えたんですが、やっぱりメインで使ってるGXで使えないと意味がないってことでその方法はナシに。
次にテザリングアプリを使ってルータ化して同一ネットワークに接続させたあとにFTPなりで交換すればいいのでは?と思いつきました。
ところが出回っているテザリング用のアプリはたくさんあれど、そのほとんどがadhocにしか対応していない(PCをテザリングする前提のため)。
いくつかinfrastructureに対応してるテザリングアプリもあったんですがXperiaの基本システムとの相性なのかどれもまともに動きませんでした。
これじゃandroid同士繋げないじゃん…って思ってたんですがよくよく思い出してみるとandroid標準のテザリング機能あるじゃん…。
ってことで標準テザリングを使ってみたらあっさりうまくいきました。
自分の方法は以下
1.ホストにする側のandroid端末でWifiテザリングを設定
android2.3とかなら「設定」→「無線とネットワーク」→「テザリングとポータルスポット」あたりから。
4以上は「設定」→「その他」→「テザリング」あたりから。
端末によっても違うと思いますが。
2.ホストにする側でFTPサーバを起動
自分はSwiFTP使いました。
設定も楽ですぐ使えて便利です。
テザリングを実行してる最中は自身がクライアントではないので特殊なデバイスになっているらしく(たしかwlan0とかになってるはず)起動すると自ホストのIPがunknownとなってますが、ちゃんと動いてるようです。
3.ホスト側にする側のIPを調べる
実はほとんどのIP調べる系アプリが無線LANのデバイスからIP取ってくるように作られてるので調べられなかったり。
NetInfomationと言うツールだと存在するネットワークデバイス全部検索して表示してくれるので調べられました。
うちのXperiaGXの場合は「192.168.43.0/255.255.255.0」のネットワークでした。
で、ホスト側は「192.168.43.1」となる模様。
4.クライアント側のandroid端末でホストと側端末へ普通に無線LAN接続
単に無線LAN接続するのと同じでホスト側の端末探して接続します。
5.クライアント側のandroid端末にFTPクライアントアプリを入れて接続
最後にクライアント側の端末から接続します。
自分は専用のFTPソフト入れるほどでもないと思ったのでESファイルエクスプローラのFTP機能使って繋ぎました。
ちなみにSwiFTPだとデフォルトのポート21ではなく2121になってるので接続する時のポート指定に注意。
ただしこの方法ひとつだけ弱点があって、標準テザリング機能はWAN側のデータ通信がONになってないと動きません。
データ通信OFFの状態だとテザリング機能がネットワークエラーで終了してしまいます。
まぁ、わざわざホスト側のデータ通信OFFにする必要があるかと言われると普通はないと思うのですが完全にローカルのみで動作するわけではないのでそこだけ注意で。
上記方法だとどちらかがWifiテザリング使えれば利用出来て(現状、ほぼすべてのキャリアの端末で使えるのではないかと)、それなりにデカいデータも無線LANでやりとりできるのでなかなか便利かと思います。
コメント
新規コメント