利用方法、サンプルコード・関数リファレンス(OrangeOneStopEasyAPI for Android)

※Javaによる開発が可能


Orange One Stop Easy API for Android
製品ご購入時のCDROMにアプリケーションソースコードもあわせてご参考ください。 
サポート・アップデートなどをご連絡するため、製品ご購入時のCDROMよりユーザー登録をおこなって下さい。



目次







※本APIはAndroid 4.1.2以上での利用となります。
Eclipseで開発する際にはAndroid SDK ManagerでAndroid 4.1.2(API Level 16)がインストールされていることを必ずご確認ください。
※Android OS 5.0(Lollipop)以降は動作未確認のため、動作保証対象外となります

 
1. サンプルアプリの利用方法
 
サンプルアプリでAPIの機能をすぐに確認できます。

(1)アプリを起動すると以下の画面が表示されます。

データ読取り、データ書込み、ID取得、リーダーID取得の4機能が使えます。

(2)読取りまたは書込みボタンを押すと以下の読取り中の画面になるので、対象のICカードをかざしてください。

(3)画面下部に結果表示されます。



 
2. Javaでの開発方法(Eclipseの場合)
   ※ JARファイルについてご不明な場合は株式会社オレンジタグスまでお問合せください。
   ※ Eclipse、ADKのバージョンにより表現が異なる場合があります。

【対象バージョン】
OrangeOneStopEasyAPI:v1.0
※EclipseによるAndroid開発環境は既に構築済みとします。
 詳しくはAndroid Developerサイトなどをご参照ください。   

【手順】
1. Androidプロジェクトを新規作成する
[ファイル]→[新規]→[Android Application Project]からプロジェクトを新規作成する。
 2. JARファイルを配置する
以下のファイルをプロジェクトにlibsフォルダを追加して配置する。
  OrangeOneStopEasyAPI.jar
3. DLLをリンクする
呼び出すクラスで以下のimport宣言を記述する
import jp.co.orangetags.orangeonestopeasyapi.OrangeOneStopEasyAPI;

4. 関数を呼び出す
getId(),readData(),writeData(),getReaderID()を呼び出す  

【サンプルコード】
サンプルアプリとして添付されるソースコードの一部抜粋です。
詳しくは商品付属のサンプルコードを参照下さい。

import jp.co.orangetags.orangeonestopeasyapi.OrangeOneStopEasyAPI;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

        // フォアグラウンドディスパッチを有効化
        pendingIntent = PendingIntent.getActivity(
             this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
        IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
        try {
            ndef.addDataType("*/*");
        }
        catch (MalformedMimeTypeException e) {
            throw new RuntimeException("fail", e);
        }

        IntentFilter tech = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);

        intentFiltersArray = new IntentFilter[] {ndef, tech};
        techListsArray = new String[][] { new String[]
         {NfcF.class.getName()}
         ,{NfcA.class.getName()}
         ,{Ndef.class.getName()}
         ,{NdefFormatable.class.getName()}
         };
        // Check NFC available
        this.nfcAdapter = NfcAdapter.getDefaultAdapter(this);
        boolean hasNfc = getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC);

        if (nfcAdapter != null && nfcAdapter.isEnabled()) {
            // NFC available
        } else if (hasNfc) {
            Toast.makeText(this, "NFCが無効になっています。有効にしてください。", Toast.LENGTH_LONG).show();
            Intent settingIntent = new Intent();
            settingIntent.setAction(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
            startActivity(settingIntent);
        } else {
            Toast.makeText(this, "NFC非対応です。", Toast.LENGTH_LONG).show();
        }

    // Intent解釈
    Intent intent = getIntent();
    resolveIntent(intent);
}
private void resolveIntent(Intent intent) {
        // IntentからTag取得
        Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
        // OrangeOneStopEasyAPI呼出し
        OrangeOneStopEasyAPI orangeOneStopEasyAPI = new OrangeOneStopEasyAPI();
        
        // IDを文字列で取得
        String resultString = orangeOneStopEasyAPI.getId(tag);
}
}

付属のサンプルコードでは、以下の流れで動作しています。
  1. TopActivityからMainActivityを呼出す
  2. MainActivityからsetResult(RESULT_OK, resultData)で値を返す
  3. TopActivityのonActivityResultで結果を取得する


【サンプルコードのインポート方法
付属のサンプルコードをEclipseにインポートする方法です。
サンプルコードはアーカイブファイルとなっていますので、アーカイブファイルからのインポートを行って下さい。
Eclipseのバージョンによって画面が異なる場合があります。

1. Eclipseのインポートメニューを開く
    [ファイル]→[インポート]→[一般][既存プロジェクトをワークスペースへ]で次へ



2. サンプルプログラムソースのアーカイブファイルを選択する
    サンプルプログラムソースのアーカイブファイルは標準では以下のフォルダに保存されています。
 例.
C:\Program Files\Orangetags\オレンジタグスOrangeOneStopAPIforAndroid\04_モジュールソフトウェア\サンプルプログラムソース\01_Orange OneStop Tester for Android\OrangeOneStopApp.zip

プロジェクトに「OrangeOneStopApp」が表示されていれば、[完了]ボタンでインポート完了です。


 
3. データ保存形式

読み書きするデータは48byteごとの「フォルダ」として格納されます。
※FeliCa Lite/Lite-Sは32byteのフォルダがあります。
※Mifare ClassicはデフォルトキーでのキーA認証のみです。
 カード種別 データ領域 フォルダNo.
 MifareUltralight 48byte x 1フォルダ 1のみ
 MifareClassic 1K 48byte x 15フォルダ 1~16(0は利用不可)
 MifareClassic 4K 48byte x 71フォルダ 1~71(0は利用不可)
 FeliCa Lite 48byte x 4フォルダ + 32byte x 1フォルダ 1~5(5のみ32byte)
 FeliCa Lite-S 48byte x 4フォルダ + 32byte x 1フォルダ 1~5(5のみ32byte)


 
4. 関数リファレンス
【対象バージョン】OrangeOneStopEasyAPI:v1.0

getId
 ・関数宣言
     public String getId(Tag tag)

 ・引数
     tag:          検知したタグオブジェクト(Android.nfc.Tag)

 ・返り値
     ID文字列

getReaderID
 ・関数宣言
     public String getReaderID()

 ・引数
     なし

 ・返り値
     リーダーID文字列

writeData
 ・関数宣言
     public int writeData(Tag tag, int folderNo, Activity activity, byte[] data)

 ・引数
     tag:          検知したタグオブジェクト(Android.nfc.Tag)
                folderNo:    データフォルダNo.
                activity:    呼び出し元Activity
                data:        書込みデータ(最大48byte)

 ・返り値
     ※以下のステータスコードを参照ください。

readData

 ・関数宣言
public byte[] readData(Tag tag, int folderNo)

 ・引数
     tag:          検知したタグオブジェクト(Android.nfc.Tag)
                folderNo:    データフォルダNo.

 ・返り値
                読取りデータ
     ※エラーの場合は以下のステータスコードが読み取り結果として返されます。

【ステータスコード】
読み取り成功                 OT_SUCCESS = 0x00;
不明なカード                 OT_UNKNOWN_CARD = 0x10;
カードなし                 OT_NO_CARD = 0x11;
書込みサイズエラー         OT_WRITE_SIZE_ERROR = 0x21;
書込みフォルダエラー OT_WRITE_FOLDER_ERROR = 0x22;
MIFARE認証エラー     OT_AUTH_MIFARE_ERROR = 0x23;
FeliCaコマンドエラー OT_READ_FELICA_COMMAND_ERROR = 0x31;
読込みフォルダエラー OT_READ_FOLDER_ERROR = 0x32;
読込みサイズエラー     OT_READ_SIZE_ERROR = 0x33;



 
5
. 利用時の注意
OrangeOneStopEasyAPIの関数のステータスコード(返り値)に応じて処理を行ってください。
ステータスコードの内容は4.関数リファレンスに記載されています。

※本APIはAndroid 4.1.2以上での利用となります。
  

お問い合わせ
APIを利用したい方、APIの機能追加やカスタム開発・ソースコード提供、システムの受託開発などをご希望の方は、株式会社オレンジタグスまでお問い合わせ下さい。    


 
※本サイト記載の社名・製品名・ロゴは各社の商標または登録商標です。
※本サイト記載の文書またはデータ等を無断で複写、複製、転記、転載、ノウハウの使用等を行うことは禁じられております。

Copyright © 2009-2013 Orangetags Inc. All Rights Reserved.  
Comments