※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)以降は動作未確認のため、動作保証対象外となります
サンプルアプリでAPIの機能をすぐに確認できます。
(1)アプリを起動すると以下の画面が表示されます。
データ読取り、データ書込み、ID取得、リーダーID取得の4機能が使えます。
(2)読取りまたは書込みボタンを押すと以下の読取り中の画面になるので、対象のICカードをかざしてください。
・ID取得を行った場合
|
・データを読み取った場合
|
・エラーの場合(例.書込み失敗)
|
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 {
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);
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[]
,{NdefFormatable.class.getName()}
this.nfcAdapter = NfcAdapter.getDefaultAdapter(this);
boolean hasNfc = getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC);
if (nfcAdapter != null && nfcAdapter.isEnabled()) {
Toast.makeText(this, "NFCが無効になっています。有効にしてください。", Toast.LENGTH_LONG).show();
Intent settingIntent = new Intent();
settingIntent.setAction(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
startActivity(settingIntent);
Toast.makeText(this, "NFC非対応です。", Toast.LENGTH_LONG).show();
Intent intent = getIntent();
}
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);
付属のサンプルコードでは、以下の流れで動作しています。
- TopActivityからMainActivityを呼出す
- MainActivityからsetResult(RESULT_OK, resultData)で値を返す
- TopActivityのonActivityResultで結果を取得する
【サンプルコードのインポート方法】
付属のサンプルコードをEclipseにインポートする方法です。 サンプルコードはアーカイブファイルとなっていますので、アーカイブファイルからのインポートを行って下さい。 Eclipseのバージョンによって画面が異なる場合があります。
1. Eclipseのインポートメニューを開く [ファイル]→[インポート]→[一般]→[既存プロジェクトをワークスペースへ]で次へ。
2. サンプルプログラムソースのアーカイブファイルを選択する サンプルプログラムソースのアーカイブファイルは標準では以下のフォルダに保存されています。 例. C:\Program Files\Orangetags\オレンジタグスOrangeOneStopAPIforAndroid\04_モジュールソフトウェア\サンプルプログラムソース\01_Orange OneStop Tester for Android\OrangeOneStopApp.zip
プロジェクトに「OrangeOneStopApp」が表示されていれば、[完了]ボタンでインポート完了です。
読み書きするデータは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) |
【対象バージョン】OrangeOneStopEasyAPI:v1.0
・関数宣言
public String getId(Tag tag)
・引数
tag: 検知したタグオブジェクト(Android.nfc.Tag)
・返り値
getReaderID
・関数宣言
public String getReaderID()
・引数
なし
・返り値
・関数宣言
public int writeData(Tag tag, int folderNo, Activity activity, byte[] data)
・引数
tag: 検知したタグオブジェクト(Android.nfc.Tag)
・返り値
※以下のステータスコードを参照ください。
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;
OrangeOneStopEasyAPIの関数のステータスコード(返り値)に応じて処理を行ってください。
ステータスコードの内容は4.関数リファレンスに記載されています。
※本APIはAndroid 4.1.2以上での利用となります。
お問い合わせ
APIを利用したい方、APIの機能追加やカスタム開発・ソースコード提供、システムの受託開発などをご希望の方は、株式会社オレンジタグスまでお問い合わせ下さい。
※本サイト記載の社名・製品名・ロゴは各社の商標または登録商標です。
※本サイト記載の文書またはデータ等を無断で複写、複製、転記、転載、ノウハウの使用等を行うことは禁じられております。
Copyright © 2009-2013 Orangetags Inc. All Rights Reserved.
|