アカウント名:
パスワード:
NFCは近接通信の規格であって決済などのサービスの規格とは別です。
ですので、サービスの規格を満たすハード・ソフトは別途必要でありそれは物理カード上のICチップの中にせよ、スマートフォンのメモリ上のプログラムにせよどこかに必要です。
今回のAndroidスマートフォンの話で言えば、カードにおけるICチップに類するハードを搭載していませんのでNFC通信での決済時にはスマートフォン上でプログラムが起動している必要があります。
ただしNFC通信開始に反応するだけの軽量スタブを経由させることは可能ですので、これを常駐させておいてシステム負荷を抑えつつ、表面上は自動でスマートフォン内アプリが起動されるようにも見せかけられます。
ただし決済開始してからアプリ起動の処理時間がかかるので決済開始~終了までの所要時間はさらに長くなりますね。
ええっと、まだ「今夏から提供開始」って発表があった程度なんですが...「現在のGoogle Walletの実装」が「そうなってるのか」を問われて答えられるのはGoogleの中の人くらいじゃないの?
ともあれ、現在提供されているGingerbread等のNFCの対応状況などからの想定ですが、
> では具体的に、現在のGoogle Walletの実装でそのように(あらかじめユーザーが手動でアプリを起動しておかなくても済むように)なっているかどうか、> という点がわかりません。現在の実装はそうなっているのでしょうか?
NFC対応なAndroidでは、NFC関連の動作(近接通信の要求など)イベントを検出したらintentが飛ぶようになってます。intent検出によりインストール時に関連付け・権限許可されたアプリが起動され、該当イベントが飛ぶのはご存知のとおり。ということで、Google Walletが普通のAndroidアプリとして実装されてるのであれば、この枠組みで実現されてるのでは?アプリをわざわざ立ち上げていなくても、待ちうけなどOSが稼動してる状態ならこの仕組みは動くはず。
ただ、現状SDKで提供されてるAPIは決済に使えるほどのセキュア性はとても担保されていないので、まっとうなサービスやる気があるなら読み取りデータ改ざんされない程度にもうちょっと仕込みがあるとは思います。# Felicaなんかはそもそも通信から対応処理まで耐タンパなFelicaチップ内で閉じてるからね...
> また、そういったソフトウェアベースの実装ですと、いざ決済をしようとアプリが自動起動しようとした段階で(たとえばメモリ不足などで)> アプリが起動できないなどの可能性を心配してしまうのですが…
Androidはそもそも基本的に(デフォルト設定なら)アプリは立ち上げっぱなしで終了させません。その代わりに、空き領域が必要になると、裏に回ってるなどの不要なアプリから所定の順序で強制的に終了させていきます。
なので、> アプリが自動起動しようとした段階で(たとえばメモリ不足などで)> アプリが起動できないなどの可能性少なくともメモリ不足でアプリが起動できないことは原則ありません。# アプリよりも生存優先度の高いサービスなどが動いているとアプリは起動できませんが、# その場合はそもそも自動起動じゃなくても起動できないからね...
ということで、公開情報から妄想してみた。とはいえ、このくらいはググればすぐわかるんで、誰も答えられない質問を「なぜなぜ」するくらいなら自分で調べることをお勧めします。
わりと細かい話までしてるみたいなのでいくつか
・intentで処理する?
intentは他アプリがそれをなりすましで受け取れるよう勝手にOSに登録できてしまいますので、決済スキームなどの次元では使えません。セキュリティを確保するには結合が疎すぎます。使うとしたらもっとお手軽で非重要な小物、ツール類向けですね。
・メモリ不足でアプリが起動できないことはあるか?
メモリ管理を厳密にやると性能低下が著しいため、AndroidにせよIOSにせよそれほど厳密には行われていません。
ですので、たとえばアプリのバグ事象でメモリが極端に不足している場合やメモリが少ない端末でFirefox4 for Androidなどヘビー級アプリを動かしているときなどでは新しいアプリの起動すらできないことも往々にしてあります。というかシステムごと落ちたりもします。
昼飯時に大量に客が並んでるレジで端末をかざしたら端末が落ちて再起動、延々と何分も後ろの客の痛い視線を・・・なんてのはあまり考えたくありませんね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
アプリケーションの起動は必要? (スコア:0)
「おサイフケータイ」ですよね。それはともかくとして、Internet Watchの記事によると「おサイフケータイ」とは違い「電源オフ状態では利用できない」とのこと。
ここで気になるのが、なぜ電源オフでは利用できないのかという点なのです。もしかするとGoogle Walletを使うには、Android端末側であらかじめ「Google Wallet」アプリを立ち上げた状態でなければ使えないのでしょうか? それとも「おさいふケータイ」同様、そういった制限は無く(Androidさえ動作していれば)特にアプリケーションを起動しておかなくても使えるの
Re: (スコア:0)
NFCは近接通信の規格であって決済などのサービスの規格とは別です。
ですので、サービスの規格を満たすハード・ソフトは別途必要であり
それは物理カード上のICチップの中にせよ、
スマートフォンのメモリ上のプログラムにせよどこかに必要です。
今回のAndroidスマートフォンの話で言えば、
カードにおけるICチップに類するハードを搭載していませんので
NFC通信での決済時にはスマートフォン上でプログラムが起動している必要があります。
ただしNFC通信開始に反応するだけの軽量スタブを経由させることは可能ですので、
これを常駐させておいてシステム負荷を抑えつつ、
表面上は自動でスマートフォン内アプリが起動されるようにも見せかけられます。
ただし決済開始してからアプリ起動の処理時間がかかるので
決済開始~終了までの所要時間はさらに長くなりますね。
Re: (スコア:0)
> カードにおけるICチップに類するハードを搭載していませんので
この部分が国産携帯と違い「電源オフでは利用できない」という理由でしょうか?
> NFC通信での決済時にはスマートフォン上でプログラムが起動している必要があります。
> ただしNFC通信開始に反応するだけの軽量スタブを経由させることは可能ですので、
> これを常駐させておいてシステム負荷を抑えつつ、
> 表面上は自動でスマートフォン内アプリが起動されるようにも見せかけられます。
この仕組みにより「あらかじめ(手動で)アプリを起動しておかな
Re:アプリケーションの起動は必要? (スコア:1, 参考になる)
ええっと、まだ「今夏から提供開始」って発表があった程度なんですが...
「現在のGoogle Walletの実装」が「そうなってるのか」を問われて答えられるのはGoogleの中の人くらいじゃないの?
ともあれ、現在提供されているGingerbread等のNFCの対応状況などからの想定ですが、
> では具体的に、現在のGoogle Walletの実装でそのように(あらかじめユーザーが手動でアプリを起動しておかなくても済むように)なっているかどうか、
> という点がわかりません。現在の実装はそうなっているのでしょうか?
NFC対応なAndroidでは、NFC関連の動作(近接通信の要求など)イベントを検出したらintentが飛ぶようになってます。
intent検出によりインストール時に関連付け・権限許可されたアプリが起動され、該当イベントが飛ぶのはご存知のとおり。
ということで、Google Walletが普通のAndroidアプリとして実装されてるのであれば、この枠組みで実現されてるのでは?
アプリをわざわざ立ち上げていなくても、待ちうけなどOSが稼動してる状態ならこの仕組みは動くはず。
ただ、現状SDKで提供されてるAPIは決済に使えるほどのセキュア性はとても担保されていないので、
まっとうなサービスやる気があるなら読み取りデータ改ざんされない程度にもうちょっと仕込みがあるとは思います。
# Felicaなんかはそもそも通信から対応処理まで耐タンパなFelicaチップ内で閉じてるからね...
> また、そういったソフトウェアベースの実装ですと、いざ決済をしようとアプリが自動起動しようとした段階で(たとえばメモリ不足などで)
> アプリが起動できないなどの可能性を心配してしまうのですが…
Androidはそもそも基本的に(デフォルト設定なら)アプリは立ち上げっぱなしで終了させません。
その代わりに、空き領域が必要になると、裏に回ってるなどの不要なアプリから所定の順序で強制的に終了させていきます。
なので、
> アプリが自動起動しようとした段階で(たとえばメモリ不足などで)
> アプリが起動できないなどの可能性
少なくともメモリ不足でアプリが起動できないことは原則ありません。
# アプリよりも生存優先度の高いサービスなどが動いているとアプリは起動できませんが、
# その場合はそもそも自動起動じゃなくても起動できないからね...
ということで、公開情報から妄想してみた。
とはいえ、このくらいはググればすぐわかるんで、誰も答えられない質問を「なぜなぜ」するくらいなら
自分で調べることをお勧めします。
Re:アプリケーションの起動は必要? (スコア:1, 参考になる)
わりと細かい話までしてるみたいなのでいくつか
・intentで処理する?
intentは他アプリがそれをなりすましで受け取れるよう
勝手にOSに登録できてしまいますので、
決済スキームなどの次元では使えません。
セキュリティを確保するには結合が疎すぎます。
使うとしたらもっとお手軽で非重要な小物、ツール類向けですね。
・メモリ不足でアプリが起動できないことはあるか?
メモリ管理を厳密にやると性能低下が著しいため、
AndroidにせよIOSにせよそれほど厳密には行われていません。
ですので、たとえばアプリのバグ事象でメモリが極端に不足している場合や
メモリが少ない端末でFirefox4 for Androidなどヘビー級アプリを動かしているときなどでは
新しいアプリの起動すらできないことも往々にしてあります。
というかシステムごと落ちたりもします。
昼飯時に大量に客が並んでるレジで端末をかざしたら端末が落ちて再起動、
延々と何分も後ろの客の痛い視線を・・・なんてのはあまり考えたくありませんね。