Nearby Message API を試してみた
Nearby API
Nearby API は『Google Play Searvices 7.8』で追加された、Bluetooth、Wi-Fi、そして人間の耳には聞こえない音を使って情報を共有を可能にする API。Android(2.3以上)と iOS で動作する。
既にいくつかの Google のアプリで使われているようだ。 Nearby API の概要については、下に貼った Google 公式ブログの記事を参照してほしい。
ドキュメント https://developers.google.com/nearby/developer-guidelinesdevelopers.google.com
Google 公式ブログ Nearby API であなたを取り巻く世界とつながる - Google Developer Japan Blog
以下、Nearby Message API を試した感想など。
サンプルを動かす
とりあえずサンプルを動かしてみる
公式のサンプルがあるので clone してみる。
README にも書いてあるとおり、API キーが必要になるので Google Developers Console から Nearby Messages API を有効にして、アプリの署名の SHA1 を Android キーに登録。キーが作成されるので、それを AndroidManifest.xml に追加したら準備完了。
サンプルを実行するとこんな感じ。
『Discover neardy』 で Subscribe (受信)、『Share device』で Publish (送信) するようになっている。
Nearby しようとするとパーミッションの確認ダイアログが現れる
Nearby Message ではバイト配列が送信できる。
公式のサンプルでは、Java オブジェクトを Json 文字列にしてそれをバイト配列にしたものを送信していた。*1 表示されているのは Build.MODEL。
Nearby API 試してたんだけど、音は端末によって聞き取れたり聞き取れなかったりするみたい。Xperia はめっちゃ音がして、夏の終わりを感じる(Nearby API の音が虫の鳴き声っぽい) pic.twitter.com/gE1gwbheXd
— てし (@teshi04) 2015, 9月 19
『いぇ〜〜〜〜い』と表示させる。
Nearby 大合唱 pic.twitter.com/9L96hmxWTi
— てし (@teshi04) 2015, 9月 19
音
Subscribe 時も、Publish 時も音が鳴る。
この音は、デバイスによっては普通に聞き取れる。普通に聞き取れなくても、デバイスの音量を上げて、デバイスに耳を押し当てると聴こえると思う。
手元にあるデバイスで試してみたところ、デバイスによって音が違って楽しい。
Nexus 5 「シューン、シューン」
Nexus 7 「ジジジジジ、ジジジジジ」
SO-04F (どんな音がしたか覚えてないけどすごくうるさい)
試してみた
設定を変えて試してみる(検証端末 Nexus 5)
『Nearby では Bluetooth、Wi-Fi、および不可聴のサウンド (デバイスのスピーカーとマイクを使用する) の組み合わせを使用して、通信可能な近接領域を確立します。』と公式ブログにある。Wi-Fi とBluetooth をどちらかをオフにして Nearby を試すと以下のようになった。
Wi-Fi オフ・Bluetooth オン:Nearby 失敗
Wi-FI オン・Bluetooth オフ:Nearby を使う時だけ勝手に Bluetooth がオンになって成功
Wi-FI も Bluetooth も必須だということが分かる。
周りがうるさくても Nearby できるか
『Edjing Pro は、Nearby を使用し、DJ がトラックリストを周囲の人々に公開できるようにします。リスナーは気に入ったトラックに投票し、その投票結果がリアルタイムで更新されます。』と公式ブログにある。
DJ が曲流していたら、うるさくて Nearby 音かき消されないのかな?と思ったのでうるさくても Nearby できるか試した。
マイケル・ジャクソンの『スリラー』を部屋のスピーカーから流して、そのスピーカーの前にデバイスを置いて Subscribe。部屋の隅っこでもう一台のデバイスで Publish してみる。Nearby 成功。
まとめ
Nearby みんなでやったら楽しいかもしれない。なんかアプリ作りたいな!
*1:Gson 使ってた