Slide 1

Slide 1 text

Androidで用意されている 端末との近距離通信のあれこれ Mobile Act Osaka #3 @pg0084

Slide 2

Slide 2 text

・オオハシタクヤ @pg0084 ・フェンリルに所属 Androidエンジニア ・静岡県浜松市出身 ・趣味はマクドナルド 自己紹介

Slide 3

Slide 3 text

Androidの端末間近距離通信について調べてみた

Slide 4

Slide 4 text

やりたいこと 近距離の端末にメッセージを送る オフライン対応 1対多通信

Slide 5

Slide 5 text

Android4.0から追加されたNFCを使った通信技術 Android 4.1以降ではNFCで通信を開始したあと はBluetoothに切り替えてコンテンツを送信する 方式になる 「タップしてビーム」これが自分の中で話題に AndroidBeam

Slide 6

Slide 6 text

良い点 AndroidOSの機能のため、受信側が同じアプリを入れていなくても 良い インターネット接続がなくても通信ができる 比較的大きいデータも早く送受信ができる

Slide 7

Slide 7 text

NFCなので本当に近くないとできない AndroidBeamの設定がデフォルトでONになっていない端末 が多い 悪い点

Slide 8

Slide 8 text

条件 近距離の端末にメッセージを送る 〇 オフライン対応 〇 1対多通信 △

Slide 9

Slide 9 text

Nearby Messages API Google API Console 2015年に公開 Bluetooth、Wi-Fi、人間の耳には聞こえない 音を使って情報を共有を可能にする API API Keyが必要 iOSのAPIも公開されてます

Slide 10

Slide 10 text

良い点 近距離の知らない人とも通信ができる OSの隔たりがない (Android、iOSに対応)

Slide 11

Slide 11 text

オフラインでの利用が不可 耳に聞こえない音と言ったがばっちり音が聞こえる端末があ るらしい(聞いたことない) 100KBまでのデータの送受信(悪い点?) 悪い点

Slide 12

Slide 12 text

条件 近距離の端末にメッセージを送る ◎ オフライン対応 × 1対多通信 〇

Slide 13

Slide 13 text

Nearby Connection API 「Google I/O 2017」で発表、バージョンアップされた 完全オフライン対応 通信は「1:N型」と「M:N型」の2種類。 WiFi, Bluetooth LE & Classic Bluetoothを利用して接続

Slide 14

Slide 14 text

条件 近距離の端末にメッセージを送る 〇 オフライン対応 〇 1対多通信 〇

Slide 15

Slide 15 text

Nearby Connection API 実装 AndroidManifest.xml ConnectionsClient

Slide 16

Slide 16 text

Nearby Connection API 実装 受信側 端末を検出可能状態にする 接続の結果を確認

Slide 17

Slide 17 text

Nearby Connection API 実装 受信側 接続の要求を受信、接続要求に応じる データの受信 ※rejectConnection()で拒否

Slide 18

Slide 18 text

Nearby Connection API 実装 送信側 端末を検出を開始 接続の検出、接続要求をする

Slide 19

Slide 19 text

Nearby Connection API 実装 送信側 データの送信(テキスト) StreamやFileデータもPayloadで送受信可能

Slide 20

Slide 20 text

良い点 オフラインでの利用が可能 近距離の知らない人とも通信ができる 比較的大きなデータのやりとりも可能

Slide 21

Slide 21 text

悪い点 GooglePlayService依存

Slide 22

Slide 22 text

超近距離ですぐ通信を開始する → AndroidBeam Android、iOS隔たりない軽いデータのやりとり → NearbyMessages API、 オフラインでのデータのやりとり → NearbyConnection API まとめ

Slide 23

Slide 23 text

ご清聴ありがとうございました