Androidが他のデバイスと通信する基本的な方法一覧
しっかりとまとめたわけではなく、自分の感性や思想が強く反映され得ているかもしれない。
もしミスや語弊があればコメントなどで指摘をしてほしい。
1.Network(HTTP)
TCP通信→遠距離通信
サーバーを作成して、サーバーを経由してデータを共有し合う方法
PythonやGoなどでHTTPサーバーを使用してJsonを持ちいでデータを共有し合う
めちゃくちゃでかいデータを送り合う場合はMinioのようなデータサーバーを作成しないときつい
比較的に簡単に行うことができる・記事も多い
UDP通信→中距離通信
通信する先が直接Androidデバイスでやる方法
Wi-Fiにつながっている必要と、同じネットワークに属性している必要がある、また送信先のIPアドレスを知る必要がある。
少し難しいと思う・記事の量は少なめ
Firebase(Firestore)→遠距離通信
Firebaseが提供しているサービス
Firebase側がDBを持っていて、そこにどんどんデータを溜めたり、呼び出したりすることができる。
データ量が少なければ無料枠に収まることもある。
記事も多く、簡単にできるためおすすめ。
概要
2.Bluetooth
概要
Bluetoothにまつわる通信はすべてむずい。
かなり長い戦いになるため頑張ろう。
BLEとは
BLE(ビーコン)(iBeacon)→近距離通信
ビーコンでの送受信であればまだ比較的簡単に行うことができる
UUIDやMajer-Minerを取得できる
送受信するようなものだったり、大量のデータを送信できない
記事は少なく、少し難しいが梶研ではやったことがある人が多いため、実装は可能だと思う。
記事おすすめ→AltBeaconというライブラリを使うとすごく簡単に作れる
Qiitaの記事
公式リファレンス
BLE(セントラルとペリフェラルに分かれる双方向通信)→近距離通信
どの通信に対してどのような処理を行うかなど、すべて手書きで書かないといけないかもしれない。
ライブラリがないかも。
記事はぐっと少なくなる、すごく難しい
BLE(クラシック)→近距離通信
直接データを扱い、パケット形式で送受信をする。
かなりめんどくさく、ライブラリもないため本当に難しい。
記事もほとんどない。
悲しい
3. USBシリアル通信→近距離通信
低遅延で、高品質で素早い通信ができる
権限関係でなかなかうまくいかない
技術的には可能だが、本当に記事が少ない。
4. NearByAPI→近距離通信
Wi-FiとBluetoothを用いて通信する方法
iOSとAndroidで通信し合うこともできる。
Wi-FIBluetoothを用いて通信する方法をパッケージかしてくれている
記事も多く、かなり簡単に通信ができるためおすすめ。
記事
5. 赤外線→近距離通信
今はデバイスについていないので、おそらくできない
ついているものがあればできるかも?
もう記事が少ないと思う
Discussion