rhodes 3.0.0.beta.4 → 3.0.0.beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +9 -4
- data/doc/build.txt +6 -0
- data/lib/extensions/debugger/debugger.rb +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/AndroidManifest.xml +15 -3
- data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +6 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/ext_build.files +6 -4
- data/lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp +98 -11
- data/lib/extensions/nfc/ext/nfc/platform/android/res/xml/filter_nfc.xml +13 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/Nfc.java +291 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcActivity.java +52 -0
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/{nfc → rhomobile/nfc}/NfcMessage.java +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/{nfc → rhomobile/nfc}/NfcMessagePack.java +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/{nfc → rhomobile/nfc}/NfcRecord.java +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcTechActivity.java +42 -0
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc.i +50 -0
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +305 -0
- data/lib/extensions/nfc/nfc.rb +134 -0
- data/platform/android/Rhodes/res/xml/filter_nfc.xml +13 -0
- data/platform/android/build/android.rake +35 -19
- data/platform/android/build/androidcommon.rb +34 -2
- data/platform/win32/RhoSimulator/QTLICENSE.LGPL +504 -0
- data/platform/wp7/build/wp.rake +11 -11
- data/rhodes.gemspec +1 -1
- metadata +13 -8
- data/lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/Nfc.java +0 -150
data/Manifest.txt
CHANGED
@@ -723,10 +723,13 @@ lib/extensions/nfc/ext/nfc/platform/android/AndroidManifest.xml
|
|
723
723
|
lib/extensions/nfc/ext/nfc/platform/android/ext_build.files
|
724
724
|
lib/extensions/nfc/ext/nfc/platform/android/jni/src/nfc.cpp
|
725
725
|
lib/extensions/nfc/ext/nfc/platform/android/Rakefile
|
726
|
-
lib/extensions/nfc/ext/nfc/platform/android/
|
727
|
-
lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/
|
728
|
-
lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/
|
729
|
-
lib/extensions/nfc/ext/nfc/platform/android/src/com/nfc/
|
726
|
+
lib/extensions/nfc/ext/nfc/platform/android/res/xml/filter_nfc.xml
|
727
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/Nfc.java
|
728
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcActivity.java
|
729
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcMessage.java
|
730
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcMessagePack.java
|
731
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcRecord.java
|
732
|
+
lib/extensions/nfc/ext/nfc/platform/android/src/com/rhomobile/nfc/NfcTechActivity.java
|
730
733
|
lib/extensions/nfc/ext/nfc/shared/ruby/nfc.i
|
731
734
|
lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c
|
732
735
|
lib/extensions/nfc/ext.yml
|
@@ -1040,6 +1043,7 @@ platform/android/Rhodes/res/layout/status_bar_ongoing_event_progress_bar.xml
|
|
1040
1043
|
platform/android/Rhodes/res/menu/options.xml
|
1041
1044
|
platform/android/Rhodes/res/values/strings.xml
|
1042
1045
|
platform/android/Rhodes/res/values/styles.xml
|
1046
|
+
platform/android/Rhodes/res/xml/filter_nfc.xml
|
1043
1047
|
platform/android/Rhodes/rhobundle.xml
|
1044
1048
|
platform/android/Rhodes/src/com/rhomobile/rhodes/alert/Alert.java
|
1045
1049
|
platform/android/Rhodes/src/com/rhomobile/rhodes/alert/PopupActivity.java
|
@@ -4104,6 +4108,7 @@ platform/win32/RhoSimulator/imageformats/qgif4.dll
|
|
4104
4108
|
platform/win32/RhoSimulator/imageformats/qjpeg4.dll
|
4105
4109
|
platform/win32/RhoSimulator/QtCore4.dll
|
4106
4110
|
platform/win32/RhoSimulator/QtGui4.dll
|
4111
|
+
platform/win32/RhoSimulator/QTLICENSE.LGPL
|
4107
4112
|
platform/win32/RhoSimulator/QtNetwork4.dll
|
4108
4113
|
platform/win32/RhoSimulator/QtWebKit4.dll
|
4109
4114
|
platform/win32/RhoSimulator/rhosimulator.exe
|
data/doc/build.txt
CHANGED
@@ -267,7 +267,13 @@ List of capabilities related to changes in AndroidManifest - add or remove this
|
|
267
267
|
sdcard
|
268
268
|
push
|
269
269
|
|
270
|
+
### Set up minimal Andoid SDK API level
|
270
271
|
|
272
|
+
The minimal API level supported by Rhodes is 4 (Android 1.6)
|
273
|
+
It is possible to set greated minimal API level with build.yml. This will restrict installing an application on any Android OS prior to 3.0:
|
274
|
+
|
275
|
+
android:
|
276
|
+
minSDK: 11
|
271
277
|
|
272
278
|
### Building app and running it in emulator from the command line
|
273
279
|
|
@@ -5,18 +5,30 @@
|
|
5
5
|
android:versionCode="29"
|
6
6
|
android:versionName="2.3.1">
|
7
7
|
|
8
|
-
<uses-sdk android:minSdkVersion="
|
8
|
+
<uses-sdk android:minSdkVersion="10" />
|
9
9
|
|
10
10
|
<uses-feature android:name="android.hardware.nfc" android:required="false" />
|
11
11
|
|
12
12
|
<application>
|
13
13
|
|
14
|
-
<
|
14
|
+
<activity android:name="com.rhomobile.nfc.NfcActivity">
|
15
15
|
<intent-filter>
|
16
16
|
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
|
17
17
|
<category android:name="android.intent.category.DEFAULT"/>
|
18
18
|
</intent-filter>
|
19
|
-
</
|
19
|
+
</activity>
|
20
|
+
|
21
|
+
<activity android:name="com.rhomobile.nfc.NfcTechActivity">
|
22
|
+
<intent-filter>
|
23
|
+
<category android:name="android.intent.category.DEFAULT"/>
|
24
|
+
<action android:name="android.nfc.action.TECH_DISCOVERED" />
|
25
|
+
</intent-filter>
|
26
|
+
|
27
|
+
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
|
28
|
+
android:resource="@xml/filter_nfc"
|
29
|
+
/>
|
30
|
+
|
31
|
+
</activity>
|
20
32
|
|
21
33
|
</application>
|
22
34
|
|
@@ -51,6 +51,8 @@ namespace "build" do
|
|
51
51
|
raise "TEMP_FILES_DIR is not set" if $tempdir.nil?
|
52
52
|
$rootdir = ENV['RHO_ROOT']
|
53
53
|
raise "RHO_ROOT is not set" if $rootdir.nil?
|
54
|
+
$rho_build_dir = ENV['RHO_ANDROID_TMP_DIR']
|
55
|
+
raise "RHO_ANDROID_TMP_DIR is not set" if $rho_build_dir.nil?
|
54
56
|
|
55
57
|
require File.join($rootdir, 'platform/android/build/androidcommon.rb')
|
56
58
|
|
@@ -88,6 +90,10 @@ namespace "build" do
|
|
88
90
|
|
89
91
|
cp_r mymaniname, maniname
|
90
92
|
|
93
|
+
# copy xml NFC filter
|
94
|
+
myres = $nfcdir + '/ext/nfc/platform/android/res'
|
95
|
+
cp_r myres, $rho_build_dir
|
96
|
+
|
91
97
|
end
|
92
98
|
end
|
93
99
|
|
@@ -1,4 +1,6 @@
|
|
1
|
-
ext/nfc/platform/android/src/com/nfc/Nfc.java
|
2
|
-
ext/nfc/platform/android/src/com/nfc/
|
3
|
-
ext/nfc/platform/android/src/com/nfc/
|
4
|
-
ext/nfc/platform/android/src/com/nfc/
|
1
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/Nfc.java
|
2
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/NfcActivity.java
|
3
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/NfcTechActivity.java
|
4
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/NfcMessagePack.java
|
5
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/NfcMessage.java
|
6
|
+
ext/nfc/platform/android/src/com/rhomobile/nfc/NfcRecord.java
|
@@ -29,7 +29,7 @@ void logi(const char* text) {
|
|
29
29
|
|
30
30
|
extern "C" void rho_nfc_set_callback(const char* callback_url) {
|
31
31
|
JNIEnv *env = jnienv();
|
32
|
-
jclass cls = rho_find_class(env, "com/nfc/Nfc");
|
32
|
+
jclass cls = rho_find_class(env, "com/rhomobile/nfc/Nfc");
|
33
33
|
if (!cls) return;
|
34
34
|
jmethodID mid = env->GetStaticMethodID( cls, "setCallback", "(Ljava/lang/String;)V");
|
35
35
|
if (!mid) return;
|
@@ -40,7 +40,7 @@ extern "C" void rho_nfc_set_callback(const char* callback_url) {
|
|
40
40
|
|
41
41
|
extern "C" void rho_nfc_enable(int enable) {
|
42
42
|
JNIEnv *env = jnienv();
|
43
|
-
jclass cls = rho_find_class(env, "com/nfc/Nfc");
|
43
|
+
jclass cls = rho_find_class(env, "com/rhomobile/nfc/Nfc");
|
44
44
|
if (!cls) return;
|
45
45
|
jmethodID mid = env->GetStaticMethodID( cls, "setEnable", "(I)V");
|
46
46
|
if (!mid) return;
|
@@ -49,7 +49,7 @@ extern "C" void rho_nfc_enable(int enable) {
|
|
49
49
|
|
50
50
|
extern "C" int rho_nfc_is_enabled(void) {
|
51
51
|
JNIEnv *env = jnienv();
|
52
|
-
jclass cls = rho_find_class(env, "com/nfc/Nfc");
|
52
|
+
jclass cls = rho_find_class(env, "com/rhomobile/nfc/Nfc");
|
53
53
|
if (!cls) return 0;
|
54
54
|
jmethodID mid = env->GetStaticMethodID( cls, "isEnabled", "()I");
|
55
55
|
if (!mid) return 0;
|
@@ -58,7 +58,7 @@ extern "C" int rho_nfc_is_enabled(void) {
|
|
58
58
|
|
59
59
|
extern "C" int rho_nfc_is_supported(void) {
|
60
60
|
JNIEnv *env = jnienv();
|
61
|
-
jclass cls = rho_find_class(env, "com/nfc/Nfc");
|
61
|
+
jclass cls = rho_find_class(env, "com/rhomobile/nfc/Nfc");
|
62
62
|
if (!cls) return 0;
|
63
63
|
jmethodID mid = env->GetStaticMethodID( cls, "isSupported", "()I");
|
64
64
|
if (!mid) return 0;
|
@@ -66,6 +66,93 @@ extern "C" int rho_nfc_is_supported(void) {
|
|
66
66
|
}
|
67
67
|
|
68
68
|
|
69
|
+
|
70
|
+
extern "C" void rho_nfc_set_tech_callback(const char* callback_url) {
|
71
|
+
JNIEnv *env = jnienv();
|
72
|
+
jclass cls = rho_find_class(env, "com/rhomobile/nfc/Nfc");
|
73
|
+
if (!cls) return;
|
74
|
+
jmethodID mid = env->GetStaticMethodID( cls, "setTechCallback", "(Ljava/lang/String;)V");
|
75
|
+
if (!mid) return;
|
76
|
+
jstring objCallback = env->NewStringUTF(callback_url);
|
77
|
+
env->CallStaticVoidMethod(cls, mid, objCallback);
|
78
|
+
env->DeleteLocalRef(objCallback);
|
79
|
+
}
|
80
|
+
|
81
|
+
extern "C" void rho_nfc_set_listen_tech_list(VALUE tech_list) {
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
extern "C" VALUE rho_nfc_get_tech_list() {
|
86
|
+
return rho_ruby_get_NIL();
|
87
|
+
}
|
88
|
+
|
89
|
+
extern "C" void rho_nfc_tech_connect(const char* name) {
|
90
|
+
|
91
|
+
}
|
92
|
+
|
93
|
+
extern "C" void rho_nfc_tech_close(const char* name) {
|
94
|
+
|
95
|
+
}
|
96
|
+
|
97
|
+
extern "C" int rho_nfc_tech_is_connected(const char* name) {
|
98
|
+
return 0;
|
99
|
+
}
|
100
|
+
|
101
|
+
extern "C" int rho_nfc_tech_MifareClassic_get_size() {
|
102
|
+
return 0;
|
103
|
+
}
|
104
|
+
|
105
|
+
extern "C" void rho_nfc_tech_MifareClassic_write_block(int index, VALUE block) {
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
extern "C" VALUE rho_nfc_tech_MifareClassic_read_block(int index) {
|
110
|
+
return rho_ruby_get_NIL();
|
111
|
+
}
|
112
|
+
|
113
|
+
extern "C" int rho_nfc_tech_MifareUltralight_get_size() {
|
114
|
+
return 0;
|
115
|
+
}
|
116
|
+
|
117
|
+
extern "C" void rho_nfc_tech_MifareUltralight_write_page(int index, VALUE block) {
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
extern "C" VALUE rho_nfc_tech_MifareUltralight_read_pages(int index) {
|
122
|
+
return rho_ruby_get_NIL();
|
123
|
+
}
|
124
|
+
|
125
|
+
|
126
|
+
// private native void callTechCallback(String callback_url, String event);
|
127
|
+
extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_callTechCallback
|
128
|
+
(JNIEnv *env, jclass, jstring js_callback_url, jstring js_event)
|
129
|
+
{
|
130
|
+
char url[2048];
|
131
|
+
char body[2048];
|
132
|
+
|
133
|
+
const char* jurl = env->GetStringUTFChars(js_callback_url,0);
|
134
|
+
const char* jevent = env->GetStringUTFChars(js_event,0);
|
135
|
+
strcpy(url, jurl);
|
136
|
+
env->ReleaseStringUTFChars(js_callback_url, jurl);
|
137
|
+
|
138
|
+
strcpy(body, "&rho_callback=1");
|
139
|
+
strcat(body, "&");
|
140
|
+
strcat(body, "Tag_event=");
|
141
|
+
strcat(body, jevent);
|
142
|
+
env->ReleaseStringUTFChars(js_event, jevent);
|
143
|
+
|
144
|
+
rho_net_request_with_data(rho_http_normalizeurl(url), body);
|
145
|
+
}
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
|
69
156
|
static jclass jclass_NfcMessagePack = NULL;
|
70
157
|
static jclass jclass_NfcMessage = NULL;
|
71
158
|
static jclass jclass_NfcRecord = NULL;
|
@@ -350,20 +437,20 @@ private:
|
|
350
437
|
|
351
438
|
|
352
439
|
// private native void callCallback(String callback_url, NfcMessagePack msgpack);
|
353
|
-
extern "C" void JNICALL
|
440
|
+
extern "C" void JNICALL Java_com_rhomobile_nfc_Nfc_callCallback
|
354
441
|
(JNIEnv *env, jclass, jstring js_callback_url, jobject jo_msgpack)
|
355
442
|
{
|
356
443
|
logi("native callback START");
|
357
444
|
// fill java ids
|
358
|
-
jclass_NfcMessagePack = env->FindClass("com/nfc/NfcMessagePack");
|
359
|
-
jclass_NfcMessage = env->FindClass("com/nfc/NfcMessage");
|
360
|
-
jclass_NfcRecord = env->FindClass("com/nfc/NfcRecord");
|
445
|
+
jclass_NfcMessagePack = env->FindClass("com/rhomobile/nfc/NfcMessagePack");
|
446
|
+
jclass_NfcMessage = env->FindClass("com/rhomobile/nfc/NfcMessage");
|
447
|
+
jclass_NfcRecord = env->FindClass("com/rhomobile/nfc/NfcRecord");
|
361
448
|
|
362
449
|
jmethod_NfcMessagePack_getItemCount = env->GetMethodID( jclass_NfcMessagePack, "getItemCount", "()I");
|
363
|
-
jmethod_NfcMessagePack_getItem = env->GetMethodID( jclass_NfcMessagePack, "getItem", "(I)Lcom/nfc/NfcMessage;");
|
450
|
+
jmethod_NfcMessagePack_getItem = env->GetMethodID( jclass_NfcMessagePack, "getItem", "(I)Lcom/rhomobile/nfc/NfcMessage;");
|
364
451
|
|
365
452
|
jmethod_NfcMessage_getItemCount = env->GetMethodID( jclass_NfcMessage, "getItemCount", "()I");
|
366
|
-
jmethod_NfcMessage_getItem = env->GetMethodID( jclass_NfcMessage, "getItem", "(I)Lcom/nfc/NfcRecord;");
|
453
|
+
jmethod_NfcMessage_getItem = env->GetMethodID( jclass_NfcMessage, "getItem", "(I)Lcom/rhomobile/nfc/NfcRecord;");
|
367
454
|
jmethod_NfcMessage_getByteArray = env->GetMethodID( jclass_NfcMessage, "getByteArray", "()[B");
|
368
455
|
|
369
456
|
jmethod_NfcRecord_getId = env->GetMethodID( jclass_NfcRecord, "getId", "()[B");
|
@@ -372,7 +459,7 @@ extern "C" void JNICALL Java_com_nfc_Nfc_callCallback
|
|
372
459
|
jmethod_NfcRecord_getTnf = env->GetMethodID( jclass_NfcRecord, "getTnf", "()I");
|
373
460
|
jmethod_NfcRecord_getType = env->GetMethodID( jclass_NfcRecord, "getType", "()[B");
|
374
461
|
jmethod_NfcRecord_getByteArray = env->GetMethodID( jclass_NfcRecord, "getByteArray", "()[B");
|
375
|
-
jmethod_NfcRecord_getSubrecords = env->GetMethodID( jclass_NfcRecord, "getSubrecords", "()Lcom/nfc/NfcMessage;");
|
462
|
+
jmethod_NfcRecord_getSubrecords = env->GetMethodID( jclass_NfcRecord, "getSubrecords", "()Lcom/rhomobile/nfc/NfcMessage;");
|
376
463
|
|
377
464
|
logi("native callback TMP 01 java IDs collected");
|
378
465
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
3
|
+
<tech-list>
|
4
|
+
<tech>android.nfc.tech.MifareClassic</tech>
|
5
|
+
</tech-list>
|
6
|
+
<tech-list>
|
7
|
+
<tech>android.nfc.tech.MifareUltralight</tech>
|
8
|
+
</tech-list>
|
9
|
+
<tech-list>
|
10
|
+
<tech>android.nfc.tech.MifareClassic</tech>
|
11
|
+
<tech>android.nfc.tech.MifareUltralight</tech>
|
12
|
+
</tech-list>
|
13
|
+
</resources>
|
@@ -0,0 +1,291 @@
|
|
1
|
+
package com.rhomobile.nfc;
|
2
|
+
|
3
|
+
import java.io.IOException;
|
4
|
+
|
5
|
+
import android.app.Activity;
|
6
|
+
import android.content.BroadcastReceiver;
|
7
|
+
import android.content.Context;
|
8
|
+
import android.content.Intent;
|
9
|
+
import android.nfc.NdefMessage;
|
10
|
+
import android.nfc.NdefRecord;
|
11
|
+
import android.nfc.NfcAdapter;
|
12
|
+
import android.nfc.Tag;
|
13
|
+
import android.nfc.tech.MifareClassic;
|
14
|
+
import android.nfc.tech.MifareUltralight;
|
15
|
+
import android.os.Build;
|
16
|
+
import android.os.Bundle;
|
17
|
+
import android.os.Parcelable;
|
18
|
+
import android.util.Log;
|
19
|
+
|
20
|
+
import com.rhomobile.rhodes.PushService;
|
21
|
+
import com.rhomobile.rhodes.RhodesActivity;
|
22
|
+
import com.rhomobile.rhodes.RhodesService;
|
23
|
+
import com.rhomobile.rhodes.Utils;
|
24
|
+
|
25
|
+
public class Nfc {
|
26
|
+
|
27
|
+
|
28
|
+
private static final String TAG = Nfc.class.getSimpleName();
|
29
|
+
|
30
|
+
private static boolean ourIsEnable = false;
|
31
|
+
private static String ourCallback = null;
|
32
|
+
private static String ourTechCallback = null;
|
33
|
+
|
34
|
+
private static Nfc ourInstance = null;
|
35
|
+
|
36
|
+
private static native void callCallback(String callback_url, NfcMessagePack msgpack);
|
37
|
+
private static native void callTechCallback(String callback_url, String tech_event);
|
38
|
+
|
39
|
+
private static Tag ourTag = null;
|
40
|
+
|
41
|
+
|
42
|
+
private MifareClassic mMifareClassic = null;
|
43
|
+
private MifareUltralight mMifareUltralight = null;
|
44
|
+
|
45
|
+
private String[] mTechList = null;
|
46
|
+
|
47
|
+
|
48
|
+
public static Nfc getInstance() {
|
49
|
+
if (ourInstance == null) {
|
50
|
+
ourInstance = new Nfc();
|
51
|
+
}
|
52
|
+
return ourInstance;
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
public static int isSupported() {
|
57
|
+
NfcAdapter da = null;
|
58
|
+
try {
|
59
|
+
int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
|
60
|
+
if (sdkVersion >= Build.VERSION_CODES.GINGERBREAD_MR1) {
|
61
|
+
da = NfcAdapter.getDefaultAdapter(RhodesService.getContext());
|
62
|
+
}
|
63
|
+
else if (sdkVersion >= Build.VERSION_CODES.GINGERBREAD) {
|
64
|
+
da = NfcAdapter.getDefaultAdapter();
|
65
|
+
}
|
66
|
+
}
|
67
|
+
catch (Exception e) {
|
68
|
+
// nothing
|
69
|
+
}
|
70
|
+
if (da == null) {
|
71
|
+
return 0;
|
72
|
+
}
|
73
|
+
int res = 0;
|
74
|
+
if (da.isEnabled()) {
|
75
|
+
res = 1;
|
76
|
+
}
|
77
|
+
return res;
|
78
|
+
}
|
79
|
+
|
80
|
+
public static int isEnabled() {
|
81
|
+
int res = 0;
|
82
|
+
if (ourIsEnable) {
|
83
|
+
res = 1;
|
84
|
+
}
|
85
|
+
return res;
|
86
|
+
}
|
87
|
+
|
88
|
+
public static void setEnable(int enable) {
|
89
|
+
ourIsEnable = (enable != 0);
|
90
|
+
}
|
91
|
+
|
92
|
+
public static void setCallback(String callback) {
|
93
|
+
ourCallback = callback;
|
94
|
+
}
|
95
|
+
|
96
|
+
public static void setTechCallback(String callback) {
|
97
|
+
ourTechCallback = callback;
|
98
|
+
}
|
99
|
+
|
100
|
+
//@Override
|
101
|
+
//public void onReceive(Context context, Intent intent) {
|
102
|
+
|
103
|
+
private static boolean isRhodesApplicationRun() {
|
104
|
+
return RhodesService.getInstance()!=null;
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
public void onReceiveTag(Tag tag) {
|
109
|
+
if (tag == null) {
|
110
|
+
return;
|
111
|
+
}
|
112
|
+
|
113
|
+
ourTag = tag;
|
114
|
+
|
115
|
+
int count = 0;
|
116
|
+
mMifareClassic = MifareClassic.get(tag);
|
117
|
+
mMifareUltralight = MifareUltralight.get(tag);
|
118
|
+
|
119
|
+
if (mMifareClassic != null) {
|
120
|
+
count++;
|
121
|
+
}
|
122
|
+
if (mMifareUltralight != null) {
|
123
|
+
count++;
|
124
|
+
}
|
125
|
+
mTechList = new String[count];
|
126
|
+
|
127
|
+
count = 0;
|
128
|
+
if (mMifareClassic != null) {
|
129
|
+
mTechList[count++] = "MifareClassic";
|
130
|
+
}
|
131
|
+
if (mMifareUltralight != null) {
|
132
|
+
mTechList[count++] = "MifareUltralight";
|
133
|
+
}
|
134
|
+
|
135
|
+
Utils.platformLog(TAG, "NFC TAG Tech Received ! Service started = "+String.valueOf(isRhodesApplicationRun()));
|
136
|
+
|
137
|
+
if (isRhodesApplicationRun()) {
|
138
|
+
if (ourIsEnable) {
|
139
|
+
if (ourTechCallback != null) {
|
140
|
+
if (ourTechCallback.length() > 0) {
|
141
|
+
callTechCallback(ourTechCallback, "discovered");
|
142
|
+
}
|
143
|
+
else {
|
144
|
+
Utils.platformLog(TAG, "Nfc callback is empty");
|
145
|
+
}
|
146
|
+
}
|
147
|
+
else {
|
148
|
+
Utils.platformLog(TAG, "Nfc callback is null");
|
149
|
+
}
|
150
|
+
}
|
151
|
+
else {
|
152
|
+
Utils.platformLog(TAG, "Nfc is not enabled");
|
153
|
+
}
|
154
|
+
}
|
155
|
+
|
156
|
+
}
|
157
|
+
|
158
|
+
public void onReceiveMessages(NdefMessage[] msgs) {
|
159
|
+
if (msgs == null || msgs.length == 0) {
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
|
163
|
+
Utils.platformLog(TAG, "NFC TAG Received ! Service started = "+String.valueOf(isRhodesApplicationRun()));
|
164
|
+
|
165
|
+
NfcMessagePack pack = new NfcMessagePack(msgs);
|
166
|
+
|
167
|
+
Utils.platformLog(TAG, "Message Pack created");
|
168
|
+
if (isRhodesApplicationRun()) {
|
169
|
+
if (ourIsEnable) {
|
170
|
+
if (ourCallback != null) {
|
171
|
+
if (ourCallback.length() > 0) {
|
172
|
+
callCallback(ourCallback, pack);
|
173
|
+
}
|
174
|
+
else {
|
175
|
+
Utils.platformLog(TAG, "Nfc callback is empty");
|
176
|
+
}
|
177
|
+
}
|
178
|
+
else {
|
179
|
+
Utils.platformLog(TAG, "Nfc callback is null");
|
180
|
+
}
|
181
|
+
}
|
182
|
+
else {
|
183
|
+
Utils.platformLog(TAG, "Nfc is not enabled");
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
}
|
188
|
+
|
189
|
+
|
190
|
+
public static void clear_listen_tech_list() {
|
191
|
+
// listen all now
|
192
|
+
}
|
193
|
+
|
194
|
+
public static void add_listen_tech(String tech_name) {
|
195
|
+
// listen all now
|
196
|
+
}
|
197
|
+
|
198
|
+
public static int get_tech_list_count() {
|
199
|
+
return getInstance().mTechList.length;
|
200
|
+
}
|
201
|
+
|
202
|
+
public static String get_tech_list(int index) {
|
203
|
+
return getInstance().mTechList[index];
|
204
|
+
}
|
205
|
+
|
206
|
+
public static void tech_connect(String tech_name) {
|
207
|
+
if (tech_name.equals("MifareClassic")) {
|
208
|
+
try {
|
209
|
+
if (getInstance().mMifareClassic != null)
|
210
|
+
getInstance().mMifareClassic.connect();
|
211
|
+
} catch (IOException e) {
|
212
|
+
// TODO Auto-generated catch block
|
213
|
+
e.printStackTrace();
|
214
|
+
}
|
215
|
+
}
|
216
|
+
if (tech_name.equals("MifareUltralight")) {
|
217
|
+
try {
|
218
|
+
if (getInstance().mMifareUltralight != null)
|
219
|
+
getInstance().mMifareUltralight.connect();
|
220
|
+
} catch (IOException e) {
|
221
|
+
// TODO Auto-generated catch block
|
222
|
+
e.printStackTrace();
|
223
|
+
}
|
224
|
+
}
|
225
|
+
}
|
226
|
+
|
227
|
+
public static void tech_close(String tech_name) {
|
228
|
+
if (tech_name.equals("MifareClassic")) {
|
229
|
+
try {
|
230
|
+
if (getInstance().mMifareClassic != null)
|
231
|
+
getInstance().mMifareClassic.close();
|
232
|
+
} catch (IOException e) {
|
233
|
+
// TODO Auto-generated catch block
|
234
|
+
e.printStackTrace();
|
235
|
+
}
|
236
|
+
}
|
237
|
+
if (tech_name.equals("MifareUltralight")) {
|
238
|
+
try {
|
239
|
+
if (getInstance().mMifareUltralight != null)
|
240
|
+
getInstance().mMifareUltralight.close();
|
241
|
+
} catch (IOException e) {
|
242
|
+
// TODO Auto-generated catch block
|
243
|
+
e.printStackTrace();
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
|
248
|
+
public static int tech_is_connected(String tech_name) {
|
249
|
+
if (tech_name.equals("MifareClassic")) {
|
250
|
+
if (getInstance().mMifareClassic != null)
|
251
|
+
if (getInstance().mMifareClassic.isConnected() )
|
252
|
+
return 1;
|
253
|
+
}
|
254
|
+
if (tech_name.equals("MifareUltralight")) {
|
255
|
+
if (getInstance().mMifareUltralight != null)
|
256
|
+
if (getInstance().mMifareUltralight.isConnected() )
|
257
|
+
return 1;
|
258
|
+
}
|
259
|
+
return 0;
|
260
|
+
}
|
261
|
+
|
262
|
+
public static int tech_MifareClassic_get_size() {
|
263
|
+
return 0;
|
264
|
+
}
|
265
|
+
|
266
|
+
public static void tech_MifareClassic_write_block(int index, byte[] block) {
|
267
|
+
|
268
|
+
}
|
269
|
+
|
270
|
+
public static void tech_MifareClassic_read_block(int index, byte[] block) {
|
271
|
+
|
272
|
+
}
|
273
|
+
|
274
|
+
|
275
|
+
public static int tech_MifareUltralight_get_size() {
|
276
|
+
return 0;
|
277
|
+
}
|
278
|
+
|
279
|
+
public static void tech_MifareUltralight_write_page(int index, byte[] page) {
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
public static void tech_MifareUltralight_read_pages(int index, byte[] pages) {
|
284
|
+
|
285
|
+
}
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
}
|