🌐

Androidが他のデバイスと通信する基本的な方法一覧

2024/02/08に公開

しっかりとまとめたわけではなく、自分の感性や思想が強く反映され得ているかもしれない。
もしミスや語弊があればコメントなどで指摘をしてほしい。

1.Network(HTTP)

TCP通信→遠距離通信

サーバーを作成して、サーバーを経由してデータを共有し合う方法
PythonやGoなどでHTTPサーバーを使用してJsonを持ちいでデータを共有し合う
めちゃくちゃでかいデータを送り合う場合はMinioのようなデータサーバーを作成しないときつい
比較的に簡単に行うことができる・記事も多い

UDP通信→中距離通信

通信する先が直接Androidデバイスでやる方法
Wi-Fiにつながっている必要と、同じネットワークに属性している必要がある、また送信先のIPアドレスを知る必要がある。
少し難しいと思う・記事の量は少なめ

Firebase(Firestore)→遠距離通信

Firebaseが提供しているサービス
Firebase側がDBを持っていて、そこにどんどんデータを溜めたり、呼び出したりすることができる。
データ量が少なければ無料枠に収まることもある。
記事も多く、簡単にできるためおすすめ。
概要
https://firebase.google.com/docs/firestore?hl=ja

2.Bluetooth

概要

Bluetoothにまつわる通信はすべてむずい。
かなり長い戦いになるため頑張ろう。

BLEとは
https://www.musen-connect.co.jp/blog/course/trial-production/ble-beginner-1/

BLE(ビーコン)(iBeacon)→近距離通信

ビーコンでの送受信であればまだ比較的簡単に行うことができる
UUIDやMajer-Minerを取得できる
送受信するようなものだったり、大量のデータを送信できない
記事は少なく、少し難しいが梶研ではやったことがある人が多いため、実装は可能だと思う。
記事おすすめ→AltBeaconというライブラリを使うとすごく簡単に作れる
Qiitaの記事
https://qiita.com/kenmaeda51415/items/ac5a2d5a15783bbe9192
公式リファレンス
https://altbeacon.github.io/android-beacon-library/

BLE(セントラルとペリフェラルに分かれる双方向通信)→近距離通信

どの通信に対してどのような処理を行うかなど、すべて手書きで書かないといけないかもしれない。
ライブラリがないかも。
記事はぐっと少なくなる、すごく難しい

BLE(クラシック)→近距離通信

直接データを扱い、パケット形式で送受信をする。
かなりめんどくさく、ライブラリもないため本当に難しい。
記事もほとんどない。
悲しい

3. USBシリアル通信→近距離通信

低遅延で、高品質で素早い通信ができる
権限関係でなかなかうまくいかない
技術的には可能だが、本当に記事が少ない。

4. NearByAPI→近距離通信

Wi-FiとBluetoothを用いて通信する方法
iOSとAndroidで通信し合うこともできる。
Wi-FIBluetoothを用いて通信する方法をパッケージかしてくれている
記事も多く、かなり簡単に通信ができるためおすすめ。
記事
https://developers.google.com/nearby/connections/overview?hl=ja
https://qiita.com/niusounds/items/ecc759c51da8e1f1e8a0

5. 赤外線→近距離通信

今はデバイスについていないので、おそらくできない
ついているものがあればできるかも?
もう記事が少ないと思う

Discussion