Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions android/manifest
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# this is your module manifest and used by Titanium
# during compilation, packaging, distribution, etc.
#
version: 6.0.0
version: 7.0.0
apiversion: 4
architectures: arm64-v8a armeabi-v7a x86 x86_64
description: Near Field Communication (NFC)
Expand All @@ -15,4 +15,4 @@ name: nfc
moduleid: ti.nfc
guid: 50513178-f1da-40e1-8031-75c08db86d6f
platform: android
minsdk: 12.7.0
minsdk: 13.1.0
52 changes: 33 additions & 19 deletions android/src/ti/nfc/NfcAdapterProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,16 @@

package ti.nfc;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.Ndef;
import android.nfc.tech.NdefFormatable;
import android.os.Build;
import android.os.Message;
import android.os.Parcelable;
Expand Down Expand Up @@ -151,27 +156,36 @@ public boolean isEnabled()
return (_adapter != null) ? _adapter.isEnabled() : false;
}

@SuppressLint("InlinedApi")
@Kroll.method
public void enableReader(KrollFunction callback)
public void enableReader(KrollDict options)
{
if (_adapter != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
_adapter.enableReaderMode(TiApplication.getAppCurrentActivity(),
new NfcAdapter.ReaderCallback() {
@Override
public void onTagDiscovered(Tag tag)
{
KrollDict event = new KrollDict();
NfcTagProxy tagProxy = new NfcTagProxy(tag);
event.put(NfcConstants.PROPERTY_TAG, tagProxy);
Log.d(NfcConstants.LCAT, "tagproxy: " + tagProxy.getId());
callback.callAsync(getKrollObject(), event);
}
},
NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B
| NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_BARCODE
| NfcAdapter.FLAG_READER_NFC_V | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK
| NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS,
null);
if (options.containsKeyAndNotNull("discovered")) {
int flags = NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_NFC_B
| NfcAdapter.FLAG_READER_NFC_F | NfcAdapter.FLAG_READER_NFC_BARCODE
| NfcAdapter.FLAG_READER_NFC_V;

KrollFunction callback = (KrollFunction) options.get("discovered");
if (options.containsKeyAndNotNull("flags")) {
flags = options.getInt("flags");
}
if (_adapter != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
_adapter.enableReaderMode(TiApplication.getAppCurrentActivity(),
new NfcAdapter.ReaderCallback() {
@Override
public void onTagDiscovered(Tag tag) {
KrollDict event = new KrollDict();
NfcTagProxy tagProxy = new NfcTagProxy(tag);
event.put(NfcConstants.PROPERTY_TAG, tagProxy);
Log.d(NfcConstants.LCAT, "tagproxy: " + tagProxy.getId());
callback.callAsync(getKrollObject(), event);
}
},
flags,
null);
}
} else {
Log.e(NfcConstants.LCAT, "Missing 'discovered' callback function");
}
}

Expand Down
15 changes: 15 additions & 0 deletions android/src/ti/nfc/NfcModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,21 @@ public class NfcModule extends KrollModule
@Kroll.constant
public static final int MIFARE_ULTRALIGHT_TYPE_UNKNOWN = MifareUltralight.TYPE_UNKNOWN;

@Kroll.constant
public static final int FLAG_READER_NFC_A = NfcAdapter.FLAG_READER_NFC_A;
@Kroll.constant
public static final int FLAG_READER_NFC_B = NfcAdapter.FLAG_READER_NFC_B;
@Kroll.constant
public static final int FLAG_READER_NFC_F = NfcAdapter.FLAG_READER_NFC_F;
@Kroll.constant
public static final int FLAG_READER_NFC_V = NfcAdapter.FLAG_READER_NFC_V;
@Kroll.constant
public static final int FLAG_READER_NFC_BARCODE = NfcAdapter.FLAG_READER_NFC_BARCODE;
@Kroll.constant
public static final int FLAG_READER_NO_PLATFORM_SOUNDS = NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS;
@Kroll.constant
public static final int FLAG_READER_SKIP_NDEF_CHECK = NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;

public NfcModule()
{
super();
Expand Down
Loading
Loading