2013年以降、NFC機能(非接触で機器同士が双方向に通信できる)を搭載した、Android端末が爆発的に増えてきています。それにともないNFCを利用したアプリ開発が注目を集めています。さらにNFCと通信できるNFCタグ(チップ)の廉価化も進み、アプリ開発の用途も広がりを見せてきています。本書は、Android端末を利用したNFCアプリのプログラミング手法について解説した書籍です。NFCの今後の広がりや、NFCの規格に関する説明から始まり、今後、需要が高まるであろう開発手法について基本から応用まで丁寧に解説しています。これらからNFCを利用したアプリ開発を考えている開発者の方、必見の1冊です。
第1章 NFCの概要と市場
1-1 認知されつつあるNFC
1-1-1 NFC(Near Field Communication)
1-1-2 NFCの決済機能
1-1-3 NFCとAndroid
1-1-4 NFCタグ
1-1-5 NFCの使い道
1-1-6 NFCを使ったアプリケーション
1-1-7 ペアリング機能
1-1-8 NFCを使ったさまざまなプロモーション
1-1-9 NFCを使ったプロモーション「NFC QUEST」
1-1-10 NFCを使ったプロモーション「Ikesu」
1-2 NFCを使うことの利点
1-2-1 NFCとQRコード
1-2-2 それぞれの特徴を見極める
1-3 具体的にNFCとは何なのか
1-3-1 通信の仕組み
1-3-2 NFCを取り巻く環境
1-3-3 RFID
1-3-4 非接触ICカードの国際規格「ISO/IEC 14443」
1-3-5 通信プロトコルの国際規格としてのNFC
1-3-6 NFCフォーラム仕様としてのNFC
1-3-7 NFCフォーラムとその仕様
1-3-8 NDEF
1-3-9 3つのモード
1-3-10 NFC Forum Tag
第2章 Android NFCアプリ開発の基本
2-1 Android NFCを開発する準備
2-1-1 NFCが動作するAndroid端末があること
2-1-2 読み書き可能なNFCタグがあること
2-2 開発環境のセットアップ
2-2-1 本書で利用する開発環境
2-2-2 Javaのインストール
2-2-3 ADTのダウンロード
2-2-4 文字コードの設定
2-3 NFCプロジェクトの条件
2-3-1 作成するアプリがAndroid 2.3.3(API Level 10)以上を対象としたものであること
2-4 簡単なNFCアプリを作成する
2-4-1 プロジェクトを作成する
2-4-2 アプリが起動しない場合の対処方法
2-5 NFCタグのデータがアプリ側へ行く仕組み
2-5-1 Androidが、対象物(NFCタグやNFC対応端末)を見つけるためのポーリングを開始する
2-5-2 対象物(NFCタグまたはNFC対応端末)に電力を供給する
2-5-3 要求(コマンド)を発行し、演算結果を受信する
2-5-4 受け取ったデータがタグディスパッチシステムによって解析されてアプリにデータが届く
2-6 タグテクノロジーの一覧と特徴
2-6-1 タグテクノロジー
2-7 タグディスパッチシステムについて
2-7-1 タグディスパッチシステムの必要性
2-7-2 NFCにかざした時に求められる操作
2-7-3 タグディスパッチシステムのアクティビティ決定のフロー
2-7-4 アクティビティ決定のフロー
2-8 タグディスパッチのベストプラクティス
第3章 NFCタグを読み込む/書き込むアプリの作成
3-1 タグを読み込む
3-1-1 NFCの使用準備
3-1-2 SDKバージョンの確認
3-1-3 パーミッションの追加
3-1-4 Playストアのフィルタを設定
3-1-5 NFCインテントのフィルタを設定
3-1-6 NFCの利用可否
3-1-7 UIDの取得
3-2 タグを書き込む
3-2-1 NFCの書き込み
3-2-2 書き込み対象のタグ情報を取得
3-2-3 書き込むタグの生成
3-2-4 タグの書き込み判定処理
3-2-5 タグの書き込み
3-3 Android Beamを利用して端末間通信を行う
3-3-1 Android Beamについて
3-3-2 Android Beamの使用準備
3-3-3 アクティビティの起動方法をsingleTopに変更する
3-3-4 データの送信処理
3-3-5 データの受信処理
第4章 NFCタグデータの作成と Wi-Fiぺアリングアプリの開発
4-1 本章を読み進める前に
4-1-1 本章の構成
4-1-2 NDEFについて
4-1-3 各種NDEFレコードの作成/読み取り
4-1-4 URIレコードを利用して端末間Wi-Fi ペアリングを行う
4-1-5 読む順序について
4-2 NDEFの基本
4-2-1 NDEFでやり取りできるデータ
4-2-2 NDEFを理解する
4-2-3 TNF(Type Name Format; タイプネームフォーマット)
4-2-4 タイプ(payload type)
4-2-5 ID(payload ID)
4-2-6 ペイロード(payload)
4-3 NDEFレコードの詳細なバイナリ仕様
4-3-1 NDEFレコードのバイト列構成
4-4 NFC Forumからダウンロードできる仕様について
4-4-1 NFC Forumの仕様
4-5 各種NDEFレコードの作成方法
4-5-1 NDEFレコード
4-5-2 本書付属のサンプルについて
4-6 テキストレコード(Text RTD)を利用する
4-6-1 テキストレコードについて
4-6-2 テキストレコードの概要
4-6-3 レコードの作成/読み取り
4-7 URIレコード(URI RTD)を利用する
4-7-1 URIレコードとは
4-7-2 URIレコードの概要
4-7-3 レコードの作成/読み取り
4-8 メディアタイプレコードを利用する
4-8-1 メディアタイプレコードの概要
4-8-2 メディアタイプレコードの作成/読み取り
4-9 アプリケーションレコードを利用する
4-9-1 アプリケーションレコードとは
4-9-2 アプリケーションレコードの概要
4-9-3 レコードの作成/読み取り
4-10 スマートポスターを利用する
4-10-1 スマートポスターとは
4-10-2 スマートポスターの概要
4-10-3 URIレコード(The URI Record)
4-10-4 タイトルレコード(The Title Record)
4-10-5 アクションレコード(Recommended Action Record)
4-10-6 アクションレコードの作成/読み取り
4-10-7 アイコンレコード(The Icon Record)
4-10-8 サイズレコード(The Size Record)
4-10-9 サイズレコードの作成/読み取り
4-10-10 タイプレコード(The Type Record)
4-10-11 タイプレコードの作成/読み取り
4-10-12 スマートポスターレコードの作成/読み取り
4-11 URIレコードを利用して端末間Wi-Fi ペアリングを行う
4-11-1 Wi-Fiペアリングアプリについて
4-11-2 Wi-Fi情報の送信
4-11-3 Wi-Fi情報の受信
4-11-4 Wi-Fiのアクセス
4-11-5 検出したアクセスポイントを有効化
4-11-6 アクセスポイントへ接続
第5章 NFCを用いたデータ管理システムの開発
5-1 NFCを用いたデータ管理システムとは
5-1-1 データベース管理を効率よく行うシステム
5-2 Androidで使用されるデータ管理方法について
5-2-1 ファイルシステムベースのデータ管理システム
5-3 NFCタグを管理するデータベースを設計する
5-3-1 データベースを設計する
5-4 データベースを生成する
5-4-1 SQLiteデータベースで作成する
5-4-2 データベースのオープン
5-5 データを生成する
5-5-1 SQLDatabaseで生成や更新、削除をする
5-5-2 データの更新
5-5-3 データの削除
5-5-4 データの検索
5-5-5 カーソルの使用
5-6 NFCカードスキャン履歴を実装する
5-6-1 作成するアプリの概要
5-6-2 データベースの検証
5-7 コンテンツプロバイダーを利用して実装する
5-7-1 コンテンツプロバイダーを利用する
5-7-2 コンテンツプロバイダーを実装する
5-7-3 データ生成のパフォーマンスに注意
第6章 FeliCa対応Push送信アプリの開発
6-1 おサイフケータイに隠された力
6-1-1 おサイフケータイについて
6-2 FeliCaとは
6-2-1 FeliCaについて
6-3 本書での紹介範囲と許可証について
6-3-1 紹介範囲と許可証
6-4 Android標準のNFCとの比較
6-4-1 日本国内でのシェア
6-4-2 カードエミュレーションモードのサポート
6-4-3 読み取り対象とする仕様の範囲
6-4-4 開発の煩雑さ
6-5 アドホック機能について
6-5-1 アドホック機能の概要
6-5-2 Push送信機能
6-5-3 FALP機能
6-5-4 搬送波検知機能
6-6 Push送信アプリの開発
6-6-1 モバイルFeliCaクライアントとは
6-7 アプリ開発の準備
6-7-1 おサイフケータイ対応の携帯端末2台
6-7-2 MFCユーティリティライブラリfor Androidの用意
6-8 MFCを利用するまでの手順
6-8-1 MFCを利用する手順について
6-9 サンプルプログラムについて
6-9-1 本書で利用するサンプルプログラムについて
6-10 新規プロジェクトの作成
6-10-1 Androidの対応バージョンについて
6-10-2 MFC ユーティリティライブラリ for Androidをアプリに組み込む
6-10-3 AndroidManifest.xmlにパーミッションを追加する
6-10-4 AndroidManifest.xmlにサービスの宣言を行う
6-11 MFCのサービスに接続する
6-11-1 MFCのサービスへの接続
6-12 FeliCaチップを利用する開始処理を行う
6-12-1 FeliCaの利用開始処理
6-13 FeliCaチップのオープンを行う
6-13-1 FeliCaチップのオープン
6-14 Push送信を行う
6-14-1 Push送信について
6-14-2 URL送信
6-14-3 新規メール送信
6-14-4 Intent送信
6-15 チップのクローズ
6-15-1 チップのクローズとチップの利用終了の処理について
6-16 チップの利用終了処理
6-16-1 チップの利用の終了について
第7章 NFCアプリ&NFCタグの開発事例
7-1 NFCアプリの利用例
7-1-1 企業のプロモーションへの利用
7-1-2 無線ツールとしての利用
7-1-3 インフラへの利用
7-1-4 広告の新しい形
7-1-5 物流管理に利用
7-1-6 生活の中でもっと身近に利用
7-2 NFCクーポンサービス「CONNECT 新大久保」
7-2-1 地域を活性化するNFCアプリ
7-3 交通広告の新しい可能性「スマートOOH」
7-3-1 スマートOOH
7-4 ポストから情報を伝える「ココシル丸の内ポストラリー」
7-4-1 ポストが情報の発信場所になる
7-5 歩行者へ情報を提供する実証実験「スマートストリート」
7-5-1 スマートストリートを目指して
7-6 手持ちのカードがカードゲームになる「NFCバトラー」
7-6-1 気分はカードゲーム
7-7 NFCタスクランチャー
7-7-1 タスクを登録する
7-8 介護現場の情報共有を加速する「スマケア」
7-8-1 介護看護サービスでリアルタイムに情報を共有
7-9 月々の出費を簡単管理「ぺそぎん家計簿」
7-9-1 支出と収入をこまめに管理
7-10 かざすだけで写真が撮れる「NFCカメラ」
7-10-1 「非接触シャッター」の効果
7-11 さまざまな状況に対応したNFCタグ
7-11-1 キーホルダー型のタグ
7-11-2 シールタイプ
7-11-3 カードタイプ
7-11-4 バンドタイプ
7-11-5 固定タイプ
7-12 リストバンド型NFCタグ
7-12-1 リストバンド型で読み込むNFCタグ
7-13 キーホルダー型NFCタグ
7-13-1 迷子犬にならないようにワンちゃんの首輪につける「Pittag」
7-14 NFCカードアプリで勤怠管理
7-14-1 勤怠管理システムを構築できる「どこでもタイムカード@NFCタグ」
7-15 NFC対応家電の普及
7-15-1 AV機器から炊飯器まで
7-15-2 KDDI(au)は15社と連携を表明
7-16 NFC×炊飯器
7-16-1 スチーム&可変圧力IHジャー炊飯器「SR-SPX103」
7-17 NFC×体重計
7-17-1 体重体組成計 カラダスキャン HBF-252F
7-18 NFC×腕時計
7-18-1 SmartWatch 2
付 録 データベース型NFCアプリの作成に役立つ SQLクイックリファレンス
1-1 SQLiteについて
1-1-1 SQLiteの型
1-1-2 SQLiteの比較演算子
1-2 新しいテーブルを作成する
1-2-1 CREATE TABLE文
1-2-2 実際の使用例
1-3 作成したテーブルのデータを操作する
1-3-1 テーブルの削除
1-3-2 データの挿入
1-3-3 データの更新
1-3-4 データの削除
1-3-5 データの検索
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
ささ さん
2015-12-11
まず、NFCには企画がいくつかあって、スマホや任天堂new3DSに備わっているタイプと、felicaは大きなくくりではNFCだが、データの取り扱いが違っていることが理解できた。 これを読めばある程度は簡単に開発出来る。