NFC 神経衰弱 を公開しました


20120817 nfc concentration order

「NFC 神経衰弱」を Google Play に公開しました。

NFC 神経衰弱 は、昨年の夏に作って以来、永らく放置していました。
ネタとして使った写真ではマズイもので、公開できなかった。
AKB 神経衰弱 in アキバ大好き祭り

この連休中に 野毛山動物園 に行って写真を撮ってきました。
これで、晴れて日の目を見ることができました。
Android Application Award 2013 にも応募しました。
image_1image_3image_5image_7image_9

姉妹品に NFC神経衰弱「橙幻郷」版 があります。
「橙幻郷」版 との違いは。
(1) コンテンツをSDカードにコピーするようにした。
(2) コンテンツを任意に増やすことが出来るようにした。
詳しくは NFC神経衰弱の説明 をご覧ください。


アプリを起動しているときに NFC タグを検出したら処理する – NFC アプリの基礎


NFC アプリに特有の処理として、下記の2つがある。
1. NFC タグを検出したら、特定のアプリを起動する
2. アプリを起動しているときに、NFC タグを検出したら、何か処理する

アプリを起動しているときに、NFCタグ を検出したら、何か処理するには、下記を使用する。
(1) PendingIntent#getActivity
 ある条件でアプリ (Activity, Intent) を起動するための準備。
 launchMode は SingleTop とする。

(2) Activity#onNewIntent
 すでにアプリが起動されているときに、再びアプリが呼ばれたときの処理。
 NFC タグを検出したあとの処理は、ここに記述する。

具体的なコードは 高度なNFC を参照ください。そのままで動作します。
launchMode による動作の違いは Android launchMode の違い を参照ください。

参考
Android 開発ガイド: 高度なNFC
Y.A.M の 雑記帳: Android launchMode の違い
reference: PendingIntent#getActivity
reference: Activity#onNewIntent

関連
NFC 神経衰弱ゲーム


NFC タグ を検出したら特定のアプリを起動する – NFC アプリの基礎


NFC アプリに特有の処理として、下記の2つがある。
(1) NFC タグ を検出したら、特定のアプリを起動する
(2) アプリを起動しているときに、NFC タグ を検出したら、何か処理する

NFCタグ を検出したら、特定のアプリを起動するには、下記を設定する。
(1) AndroidManifest.xml に uses-permission と intent-filter を設定する。
(2) res/xml/nfc_tech_filter.xml に tech-list を設定する。

uses-permission と intent-filter は、おなじみなので省略する。
tech-list には、検出したいNFCタグの種別を記述する。
tech-list の詳細は、NFCの基本 を参照のこと。
NFCタグの種別は、TagTechnology を参照のこと。

AndroidManifest.xml の例

<uses-permission android:name="android.permission.NFC" />
<activity 
	android:name=".MainActivity"
	android:label="@string/app_name" >
 <intent-filter>
  <action android:name="android.nfc.action.TECH_DISCOVERED" />
  <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>
 <meta-data
  android:name="android.nfc.action.TECH_DISCOVERED"
  android:resource="@xml/nfc_tech_filter" />
</activity>

res/xml/nfc_tech_filter.xml の例
Type-A, Type-B, Type-F(Felica) に反応する。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
 <tech-list>
  <tech>android.nfc.tech.NfcA</tech>
 </tech-list>
 <tech-list>
  <tech>android.nfc.tech.NfcB</tech>        
 </tech-list>
 <tech-list>
  <tech>android.nfc.tech.NfcF</tech>        
 </tech-list>
</resources>

注意
NFCの基本 には、下記が掲載されているが、これは動作しない。
tech-list は、全てを満たすNFCタグに反応する。この例では IsoDep, NfcA, NfcB, … の全てを満たすNFCタグとなり、これは存在しない。
上記のように tech-list を複数記述のが正しい。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list>
        <tech>android.nfc.tech.IsoDep</tech>
        <tech>android.nfc.tech.NfcA</tech>
        <tech>android.nfc.tech.NfcB</tech>
   ...
    </tech-list>
</resources>

参考
Android 開発ガイド: NFC の基本
Android NFC アプリハンズオン by tomorrowkey
NexusSによるNFC調査: getTechList 編
reference: TagTechnology

関連
NFC 神経衰弱ゲーム
・NFC タグ を検出したら特定のアプリを起動する – NFC アプリの基礎
アプリを起動しているときに NFC タグを検出したら処理する – NFC アプリの基礎


NFC 神経衰弱のアイデア


NFC 神経衰弱 は、誰でも思いつくアイデアだと思います。
似たようなものはないか探してみたところ。
ノキアでコンセプトビデオを作っていました。
絵合わせの素材に 国旗 を使っています。
ここに出てくるような NFC 内蔵のカードが市販される日も近いかな。

YouTube Preview Image

AKB 神経衰弱 in アキバ大好き祭り


8月18日(土) に アキバ大好き!祭り2012夏 に参加しました。
今回は「日本Androidの会 秋葉原支部 アクセサリ部」の一員として、
Android 端末と NFC タグを使用した 神経衰弱ゲーム を展示しました。

アキバらしく素材を AKB48 にしてみました。
アキバなら AKB に詳しい人が多いと思ったのですが。
実際は、メンバーの顔を分からない人が多くて、難しいという反応でした。

パネル

impress さんに取材して頂きました。
NFCタグが1枚100円で販売中、スマホ連携で様々に活用

関連
NFC 神経衰弱ゲーム


NFC 神経衰弱ゲームの画像切替え


NFC 神経衰弱ゲーム には、動物の画像を添付していますが。
毎回、同じ画像だと飽きてきますね。
そこで、画像の切替えが出来るようになっています。

デフォルトでは、下記の場所にある画像を使用します。
/NfcCconcentration/default/

ここには、以下の画像と動画のファイルがあります。
image_start.jpg
image_1.jpg, image_2.jpg, …, image_10.jpg
video_complete.m4v

画像の切替えの手順です。
1. 画像を設置します
(1) PCとAndroid 端末をUSB接続します。
(2) 好きな名前のディレクトリ (例えば hoge) を作ります。
/NfcCconcentration/hoge/
(3) 上記の同じ名前のファイルを置きます。
画像サイズは、下記としてください。自動的にリサイズしません。
480px : image_start.jpg
240px : image_1.jpg, image_2.jpg, …, image_10.jpg
(4) 動画の代わりに、画像でもいいです。
その場合は、ファイル名を下記としてください。
image_complete.jpg

2. ディレクトリを指定します
(1) menu ボタンにて、setting 画面を呼び出します。
(2) 「Select Directory」をタッチします。
(3) ディレクトリ名が表示されます。

(4) 切替えしたディレクトリ名をタッチします。

関連
NFC 神経衰弱ゲーム
NFC 神経衰弱ゲーム の準備


NFC 神経衰弱ゲーム の準備


NFC 神経衰弱ゲーム の準備の説明です。

必要なもの
(1) NFC対応の Android 端末
(2) NFCタグ 10枚
(3) 名刺用紙 10枚

トランプの代わりになるカードを作ります
(1) NFCタグを用意します。
通販で購入できる Circus NXP MifareUL あたりがお勧め

(2) 名刺用紙に好きな絵柄を印刷します。
名刺ソフトは ラベル屋さん がお勧め

(3) カードの裏に NFCタグ を貼ります

カードを Andriod端末 に登録します
(1) アプリを起動する
(2) menuボタンを押し、setting をクリックする

(3) setting 画面が表示されます

(4) Andriod端末にカードをかざします

(5) NFCタグが認識されると登録されます

(6) 10枚登録すると終了です。
(7) Card List で確認してください。

関連
NFC 神経衰弱ゲーム
NFC 神経衰弱ゲームの画像切替え


NFC 神経衰弱ゲーム


NFCタグ を使用した神経衰弱ゲームを作成しました。
ソースコードは code.google に置いています。

ゲームを始める前に準備が必要です。
説明は こちら です。

遊び方
トランプの神経衰弱と同じです。
(1) カードを並べます。

(2) カードの上に Android端末 をかざします。
該当する写真が表示されます。

(3) 同じ動物の写真を揃えます。

(4) 全部揃うと、動画が表示されます。

関連
NFC 神経衰弱ゲーム の準備
NFC 神経衰弱ゲームの画像切替え
AKB 神経衰弱 in アキバ大好き祭り
NFC タグ を検出したら特定のアプリを起動する – NFC アプリの基礎
アプリを起動しているときに NFC タグを検出したら処理する – NFC アプリの基礎


ADK 2012


Google I/O 2012 にて、Android 4.1 と ADK 2012 が発表されました。
大きな特徴は下記のとおりです。
(1) ADK の protocol version が1から 2 にバージョンアップした。
(2) Bluetooth をサポートした
(3) 音楽を流せるようになった。

これに伴い、Android 4.1 と 従来の ADK の接続ができないという問題も出ています。

参考
Accessory Development Kit 2012 Guide
グーグル「ADK 2012」は出色のデザイン性
動画で見るADK 2012
ADK 1.0 devices fail to work with Jelly Bean, why?


AndroidBeamDemo – Android 4.0


20120702android_beam_tap

Android 4.0 から、NFC がサポートされました。
NFC は、タグを利用した近距離通信 (Near field communication) です。
Suica に使われている FeliCa と同じ技術です。

NFC のサンプルコードとして AndroidBeamDemo が公開されています。

Android 4.0 の端末が借りられたので、試してみました。
(1) 起動すると、設定画面から AndroidBeam を有効にしてねと、表示されます。
(2) アクションバーにある設定ボタンをクリックすると、設定画面になります。
20120702android_beam_main20120702android_beam_setting

(3) 2台の端末を近づけると、相手を検出して、タップしてビームと表示されます。
(4) 相手側に、 Beam me up と表示されます。
20120702android_beam_tap20120702android_beam_beamed

注意
NFC は通信できるメッセージは小さいです。
100バイトくらいらしい。
このサンプルでは、下記の32バイトを送信しています。
Beam me up!¥n¥nBeam Time: hh:mm:ss