スポンサーサイト

--.--.--.--.--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

NFCタグを使ってアプリを起動する(CustomURI編)

2012.11.14.Wed.23:50
前回、とりあえずDeviceArrivedとかでNFCタグをなんとなく認識していることは確認できたので、今回はCustomURIを使ってアプリを起動するNFCタグを作ってみたいと思います。

1.CustomURIで起動できるようにする
何はともあれ、CustomURIでアプリを起動できるようにしておきます。

Association launching sample(MSDN)
CustomURIについてはこのサンプルが参考になります。

まず、マニフェストにアプリを起動するためのスキームを宣言します。

今回は名前を nfcapp にしました。
CustomURI


次に、CustomURIで起動したときの処理をApp.xaml.csに追記します。
とりあえず、起動できればいいので必要最小限しか書きません。

protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.Protocol)
{
var rootFrame = new Frame();
rootFrame.Navigate(typeof(MainPage));
Window.Current.Content = rootFrame;
}

Window.Current.Activate();
}


これで、nfcappでアプリが起動するようになるはずです。
エクスプローラーのアドレス欄に「nfcapp:」と入力してEnterキーを押下するとちゃんとアプリが起動しました。

2.CustomURIをタグに書き込む

こんな関数を作って、先ほど動作確認した「nfcapp:」をタグに書き込みます。

private void writeCustomUri()
{
var dataWriter = new DataWriter
{
UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE
};
dataWriter.WriteString("nfcapp:");
device.PublishBinaryMessage("WindowsUri:WriteTag",dataWriter.DetachBuffer());
}


アプリ内にボタンを置いて、押下したときにこの関数を実行するようにしておきます。
ボタン押下後、NFCタグをリーダーライターにかざすと書き込み完了です。

一度アプリを終了し、先ほど書き込んだNFCタグをリーダーライターに再度かざすと、こんなトーストが表示されます。
toast

このトーストをクリックすると、アプリが起動しました!



アプリを起動するために、タグをかざした後、トーストをクリックしないといけないため、あまりスマートではないのが気に入らないのですが、ひとまずタグをかざしてアプリを起動するという目的は達成されました。
次回は、まだうまくいっていないLaunchAppタグで、アプリを直接起動する方法にチャレンジします。
スポンサーサイト
コメント

管理者のみに表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。