Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / Flexデベロッパーセンター /

Flash/AIRとFeliCaの連携 - 携帯電話の制御

著者 竹村 航氏

更新日

8 January 2010

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

Tags

必要条件

ユーザーレベル

初級

FeliCa(フェリカ)は、ソニーが開発した非接触ICカード技術方式です。国内の様々な電子マネーのベースとなっている技術で、馴染みのある方も多いかもしれません。今回は、FeliCaの機能を使って携帯電話のブラウザを起動するFlashアプリケーションをFlexで作成します。

  • SDK for FeliCa & Adobe® AIR®/Adobe® Flash® の詳細はこちら

必要なもの

FeliCaポートが内蔵されたPCか、パソリが必要です。また、FeliCaチップを搭載した携帯電話(おサイフケータイ)が必要です。

FeliCaポート
FeliCaポート
パソリ
パソリ

携帯電話がFeliCa対応かどうかは「FeliCaプラットフォーム」のロゴの有無で判別できます。ロゴが刻印されている箇所がちょうどアンテナがある位置なので、FeliCaポート/パソリにかざす際はそこが中心となるようにします。

おサイフケータイの例
おサイフケータイの例

ソフトウェアのダウンロードとインストール

FeliCaポート/パソリを利用するアプリケーションの開発と実行にはソニーから公開されているFeliCaポートソフトウェアと専用のSDKが必要です。これらは以下のサイトからダウンロードすることができます。

  • FeliCaポートソフトウェア
    http://www.sony.co.jp/Products/felica/pcrw/fsc_dl.html
    ページ中ほどの「ダウンロード」
  • SDK for FeliCa & Adobe AIR / Adobe Flash Basic版
    http://www.sony.co.jp/Products/felica/pdt/adb.html
    ページ中ほどの「SDK for FeliCa & Adobe AIR / Adobe Flash【Basic】ダウンロード(無償)」

サンプルコード

  • ダウンロード(zip/16KB)

Flex Builder 3

  • ダウンロード
  • 製品情報

現在のバージョンではFeliCaポートソフトウェアはWindowsにのみ対応しています。Windows以外の環境ではFeliCaポート/パソリを使用するアプリケーションを実行することはできません。

ダウンロードしたFeliCaポートソフトウェアインストーラーを実行し、PCにインストールしてください。SDKは自己解凍形式で、swcファイル、ドキュメント、サンプルが含まれています。適当な場所に解凍してください。解凍されたSDKforAIR_Flash_Basic.swcファイルはアプリケーションとリンクするので、Flexプロジェクトのライブラリパス内にコピーしてください。

アプリケーションのしくみ

USBマイクやカメラと異なり、FeliCaポート/パソリをFlash/AIRアプリケーションから直接コントロールすることはできません。そこで、『SDK for FeliCa & Adobe AIR / Adobe Flash』はFeliCa Proxy Service というFeliCaポート/パソリを操作するための別プロセスと非同期通信を行うことで、これを可能にしています。FeliCa Proxy Service はFeliCaポートソフトウェアに含まれており、インストールするとWindowsサービスとして起動します。

作成手順

まず、このアプリケーションのデザインを定義しましょう。必要なのは、ユーザーがURLを入力するためのTextAreaと送信を開始するためのButtonです。Applicationは初期化が完了するまで無効にしておき、ユーザーの入力を受け付けないようにしておきます。

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="409" height="153" creationComplete="init()" enabled = "false"> <mx:Button x="164.5" y="121" label="携帯へ送る" click="onClick()" id="button"/> <mx:TextArea x="10" y="10" width="389" height="103" id="inputURL"/>

アプリケーション生成後に呼び出されるinit()と、ボタンを押したときに呼ばれるonClick()というメソッドを定義する必要があります。まず、init()を実装しましょう。init()はFeliCaポート/パソリを操作するための準備として、アプリケーションとFeliCa Proxy Serviceとの通信を確立します。

import com.sony.jp.felica.*; import com.sony.jp.felica.event.*; private var fc:FeliCaControl = new FeliCaControl(); private function init():void { fc.addEventListener(OpenStatusEvent.OPEN_COMPLETE, onOpenComplete); fc.addEventListener(OpenStatusEvent.OPEN_FAILURE, onOpenFailure); fc.open(10250); } private function onOpenComplete(evt:OpenStatusEvent):void { fc.removeEventListener(OpenStatusEvent.OPEN_COMPLETE, onOpenComplete); fc.removeEventListener(OpenStatusEvent.OPEN_FAILURE, onOpenFailure); fc.addEventListener(FeliCaStatusEvent.FELICA_ACCESS_COMPLETE, onAccessComplete); fc.addEventListener(FeliCaStatusEvent.FELICA_ACCESS_FAILURE, onAccessFailure); fc.addEventListener(FeliCaStatusEvent.FELICA_ACCESS_PARAMETER_ERROR, onParameterError); this.enabled = true; } private function onOpenFailure(evt:OpenStatusEvent):void { mx.controls.Alert.show("オープンに失敗しました。"); }

FeliCa Proxy Serviceと通信をするのはFeliCaControlオブジェクトです。open()メソッドはアプリケーションとFeliCa Proxy Service との通信を確立するために呼ばれます。引数には通信に使用するTCPポート番号を指定します。ここには必ず10250を指定してください。open()の結果はOPEN_COMPLETEイベントもしくはOPEN_FAILUREイベントによって非同期に通知されるので、open()を呼び出す前にこれらのイベントリスナーをaddEventListener()で登録します。

  • OPEN_COMPLETE
    FeliCa Proxy Service との通信確立が成功したときに通知されます。
  • OPEN_FAILURE
    FeliCa Proxy Service との通信確立が失敗したときに通知されます。

成功したあとはこれらのイベントリスナーは不要になるので、onOpenComplete()メソッド内で削除しています。また、onOpenComplete()ではFELICA_ACCESS_COMPLETE、FELICA_ACCESS_FAILURE、FELICA_ACCESS_PARAMETER_ERRORという3つのイベントに対してaddEventListener()でイベントリスナーを登録していますが、これらのイベントについては後述します。最後に、初期化が完了しFeliCaポート/パソリと通信可能になったのでアプリケーションを有効にしてユーザー入力を受け付けられるようにします。

次に、ユーザーがボタンを押したときに呼び出されるonClick()メソッドを実装しましょう。ここでは実際に携帯電話のブラウザ起動を要求する処理を行います。

private function onClick(): void { button.enabled = false; var request:MobileFeliCaRequest = new MobileFeliCaRequest(); request.type = MobileFeliCaRequest.WEBTO; request.url = this.inputURL.text; fc.access(request); }

MobileFeliCaRequestクラスは携帯電話内の特定機能を起動させるリクエストを定義します。今回は携帯電話のブラウザを起動させるためにWEBTOをtypeプロパティに指定します。urlプロパティはブラウザで表示するURLです。ここにはユーザーがTextAreaに入力した文字列を指定します。リクエストはFeliCaControlクラスのaccess()メソッドでFeliCa Proxy Service に送信され、FeliCaポート/パソリを経由し最終的に携帯電話に届きます。この結果はopen()と同様にイベントによって非同期に通知されます。以下の3つのイベントが通知されます。

  • FELICA_ACCESS_COMPLETE
    access()メソッドで要求したリクエストが成功したときに通知されます。
  • FELICA_ACCESS_FAILURE
    access()メソッドで要求したリクエストが失敗したときに通知されます。
  • FELICA_ACCESS_PARAMETER_ERROR
    access()メソッドで要求したリクエストがパラメーターの異常によって失敗したときに通知されます。

FELICA_ACCESS_PARAMETER_ERRORは引数の不正があった場合にのみ通知されます。それ以外のエラー(例えば、おサイフケータイがパソリ上に置かれていなかった)ではFELICA_ACCESS_FAILUREが通知されます。

これらのイベントに対するイベントリスナーはonOpenComplete()内で登録済みです。今回はイベントリスナーを以下のような単純な実装にします。

private function onAccessComplete(evt:FeliCaStatusEvent):void { button.enabled = true; } private function onAccessFailure(evt:FeliCaStatusEvent):void { mx.controls.Alert.show("FeliCaカード/おサイフケータイへのアクセスに失敗しました。"); button.enabled = true; } private function onParameterError(evt:FeliCaStatusEvent):void { mx.controls.Alert.show("パラメータエラーが発生しました。"); button.enabled = true; }

エラーが発生した場合にはメッセージを表示させることにしました。また、いずれの場合もボタンを有効に戻してユーザーの次のボタン入力を受け付けられるようにします。

これでアプリケーションは完成です。TextAreaにURLを入力し、おサイフケータイをFeliCaポート/パソリの乗せた状態でボタンを押してください。携帯電話の画面上に以下のようなメッセージが表示されたら成功です。(メッセージの内容は携帯電話の機種によって異なります。)

完成したFlashアプリケーション
完成したFlashアプリケーション

完成したFlashアプリケーションを以下のURLで利用可能です。FeliCaポート/パソリとおサイフケータイをお持ちの方は試してみてください。
http://blog.felicalauncher.com/sdk_for_air/?p=365

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement