ひつじのにっきスマートフォン用の表示で見るひつじのにっきmhidakaのにっきです。長文、気が向いたとき更新。Beamの機能を使ってみました。Beamそのものの使い方はtechbooster.orgのほうで解説する予定なので、ここではJCBeamというアプリケーションに利用する上で思ったこと、使い勝手とか書きます。ソースコードはgithubで公開しています。https://github.com/mhidaka/JCBeam参考になるところ,ならないところあると思いますが興味がある方は見てください。注意:setBeamPushUrisで設定できるURIでfileスキーマを使った場合、日本語ファイルには対応できてません。OSの制限だと思います。ASCIIコードでないと受信時にエラーとなるので注意してください。Beamでは簡単に写真やビデオを共有できるのが特徴です。ICSのBeam:NFC機能を使って単純な文字列(URLなど)やIntentを発行するJBのBeam:NFC機能+大きいコンテンツはBluetoothで送信という具合にNFCをファーストコネクションに利用して使い勝手を向上させています。本来、Bluetoothを使うにはペアリングが必要なのですが、その部分をNFCを使って省略することで上手く回避しています(ゼロ・コンフィギュレーションっていいます)。初期設定のコストって大きいので、そこをスキップできるっていうのは高得点なのです。無線ルーターの設定を思い浮かべてもらうとわかりやすいです。アプリにはどんな風に利用出来るの?JCBeamはJCROMのテーマチェンジャーです。大きな画像ファイルなどがあるのでコンテンツの共有には便利です。Directを利用して実装していました。Directで通信する。いう二段のStepをふんで動きます。BeamがNFCからBluetoothに通信経路を繋いでくれるのでそれに乗っかりました。Directの不安定さが半端ない、というのも原因です。Directはすぐリブートする...。Beamは使い勝手の良い面、悪い面、両方あり、用途を選ぶというのが率直な感想よく仕様を確認していくと、4.1版Beamの実装となるNfcAdapter#setBeamPushUrisメソッドのリファレンスあたりに書いているのですがNdefMessageとsetBeamPushUriは共存できない。android.app.Activity)というのがシンプルさを提供すると共にネックになってると感じました。ICS版まで使えたNdefMessageと排他(setBeamPushUriが優先される)という挙動になっているので細かい制御ができなくなってます。Bluetoothを使ってまで送りたい大きなコンテンツに紐付いたparameterが一切渡せないからです。OSが受け取り、開く際にandroid.intent.action.VIEWします。files."とあったので配列の最初を参照して、Intent飛ばします、ということらしいです。typeだけは拡張子から自動的に判断されるのでインテントフィルタを書けばなんとかなります。インテントフィルタ例mineTypeでapplication/zipを指定するとインテントを受けられます。向いていないものアプリの中間生成ファイルみたいなコンテンツ共有者を限定するデータ巨大データ。Direct等より遅いです。送受信制御が必要なもの。相手に応じて動きを変えようとしても、NdefMessageなどが排他なので手段ない感じ。終了時間を通知できない。送信失敗しても困らないものじゃないと辛い(大きいデータほど失敗するし、Bleutoothの届く距離にいないといけない。Beamをつかってもアプリケーションに誘導できる、アプリの価値を高めるっていう感じにはならない気がします。Beamを通してユーザ同士交換しよう、という使い方が一番しっくりきます。思ってるよりユースケースは狭いのでした。特長を生かした使い方をできるか、ですね。月別アーカイブ参加グループプログラミングはてなブログをはじめよう!hdk_embeddedさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。