summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLalit Kansara <lkansara@codeaurora.org>2016-12-06 16:39:06 +0530
committerLalit Kansara <lkansara@codeaurora.org>2016-12-06 16:39:06 +0530
commitb516b5681783ea38a834d77fc02926737472076f (patch)
treebd7a7ee9e6bda175cad692efc763664864e63f00
parentf65e296c4e37a0796cb062b34086a681b35b857c (diff)
parentd637c816e1061d2c208cfa4b23cba501eb301ed5 (diff)
downloadandroid_packages_apps_Nfc-b516b5681783ea38a834d77fc02926737472076f.tar.gz
android_packages_apps_Nfc-b516b5681783ea38a834d77fc02926737472076f.tar.bz2
android_packages_apps_Nfc-b516b5681783ea38a834d77fc02926737472076f.zip
Merge N-MR1 to remote
Change-Id: Ia18218e4f9e2e4be1faab9da16866b168a77bda6
-rwxr-xr-xAndroidManifest.xml3
-rwxr-xr-xnci/jni/NfcTag.cpp3
-rwxr-xr-xnci/jni/RoutingManager.cpp16
-rwxr-xr-xnci/src/com/android/nfc/dhimpl/NativeNfcTag.java5
-rw-r--r--res/values-iw/strings.xml4
-rw-r--r--res/values-my-rMM/strings.xml4
-rw-r--r--res/values-sv/strings.xml4
-rw-r--r--src/com/android/nfc/BeamShareActivity.java9
-rwxr-xr-xsrc/com/android/nfc/NfcService.java111
-rw-r--r--src/com/android/nfc/beam/BeamTransferManager.java3
-rw-r--r--src/com/android/nfc/cardemulation/CardEmulationManager.java10
-rw-r--r--src/com/android/nfc/handover/HandoverDataParser.java9
12 files changed, 119 insertions, 62 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index eea72fd4..8cd16c70 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -53,6 +53,9 @@
<uses-permission android:name="com.android.permission.WHITELIST_BLUETOOTH_DEVICE" />
<uses-permission android:name="android.permission.DISPATCH_NFC_MESSAGE" />
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
+ <uses-permission android:name="android.permission.DEVICE_POWER" />
+ <uses-permission android:name="android.permission.USER_ACTIVITY" />
+
<application android:name=".NfcApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
diff --git a/nci/jni/NfcTag.cpp b/nci/jni/NfcTag.cpp
index ddf354a3..c6e074bd 100755
--- a/nci/jni/NfcTag.cpp
+++ b/nci/jni/NfcTag.cpp
@@ -1422,6 +1422,9 @@ void NfcTag::connectionEventHandler (UINT8 event, tNFA_CONN_EVT_DATA* data)
{
SyncEventGuard g (mReadCompleteEvent);
mReadCompletedStatus = data->status;
+ mNdefDetectionTimedOut = data->status != NFA_STATUS_OK;
+ if (mNdefDetectionTimedOut)
+ ALOGE ("%s: NDEF detection timed out", fn);
mReadCompleteEvent.notifyOne ();
}
break;
diff --git a/nci/jni/RoutingManager.cpp b/nci/jni/RoutingManager.cpp
index 6a8a452b..17ccf559 100755
--- a/nci/jni/RoutingManager.cpp
+++ b/nci/jni/RoutingManager.cpp
@@ -454,20 +454,20 @@ void RoutingManager::notifyDeactivated (UINT8 technology)
void RoutingManager::handleData (UINT8 technology, const UINT8* data, UINT32 dataLen, tNFA_STATUS status)
{
- if (dataLen <= 0)
- {
- ALOGE("no data");
- goto TheEnd;
- }
-
if (status == NFA_STATUS_CONTINUE)
{
- mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data; more to come
+ if (dataLen > 0)
+ {
+ mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data; more to come
+ }
return; //expect another NFA_CE_DATA_EVT to come
}
else if (status == NFA_STATUS_OK)
{
- mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data
+ if (dataLen > 0)
+ {
+ mRxDataBuffer.insert (mRxDataBuffer.end(), &data[0], &data[dataLen]); //append data
+ }
//entire data packet has been received; no more NFA_CE_DATA_EVT
}
else if (status == NFA_STATUS_FAILED)
diff --git a/nci/src/com/android/nfc/dhimpl/NativeNfcTag.java b/nci/src/com/android/nfc/dhimpl/NativeNfcTag.java
index c121a622..6e5ffca7 100755
--- a/nci/src/com/android/nfc/dhimpl/NativeNfcTag.java
+++ b/nci/src/com/android/nfc/dhimpl/NativeNfcTag.java
@@ -812,11 +812,6 @@ public class NativeNfcTag implements TagEndpoint {
if (generateEmptyNdef) {
ndefMsg = null;
- addNdefTechnology(null,
- getConnectedHandle(),
- getConnectedLibNfcType(),
- getConnectedTechnology(),
- supportedNdefLength, cardState);
foundFormattable = false;
reconnect();
}
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index d7eeb3a6..b7eb4045 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -5,9 +5,9 @@
<string name="nfcUserLabel" msgid="7708535817084357357">"Nfc"</string>
<string name="accessibility_nfc_enabled" msgid="7796246979948787735">"‏NFC מופעל."</string>
<string name="tap_to_beam" msgid="5819197866281059878">"הקש כדי להקרין"</string>
- <string name="beam_progress" msgid="7453634884807323920">"קרן נכנסת..."</string>
+ <string name="beam_progress" msgid="7453634884807323920">"שידור נכנס…"</string>
<string name="beam_outgoing" msgid="4679536649779123495">"מעביר תוכן..."</string>
- <string name="beam_complete" msgid="477026736424637435">"הקרנה הושלמה"</string>
+ <string name="beam_complete" msgid="477026736424637435">"העברה הושלמה"</string>
<string name="beam_failed" msgid="5116241718189888630">"הקרן לא הושלמה"</string>
<string name="beam_canceled" msgid="5425192751826544741">"הקרן בוטלה"</string>
<string name="cancel" msgid="61873902552555096">"ביטול"</string>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 7ffb711b..6fb1a4ec 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -10,7 +10,7 @@
<string name="beam_complete" msgid="477026736424637435">"လှိုင်းလွှင့်မှု ပြီးဆုံးပါပြီ"</string>
<string name="beam_failed" msgid="5116241718189888630">"လှိုင်းလွှင့်မှု မပြီးဆုံးပါ"</string>
<string name="beam_canceled" msgid="5425192751826544741">"လှိုင်းလွှင့်မှု ပယ်ဖျက်မည်"</string>
- <string name="cancel" msgid="61873902552555096">"မလုပ်တော့ပါ"</string>
+ <string name="cancel" msgid="61873902552555096">"မလုပ်တော့"</string>
<string name="beam_tap_to_view" msgid="7430394753262448349">"ကြည့်ရှုရန် တို့ပါ"</string>
<string name="beam_handover_not_supported" msgid="4083165921751489015">"လက်ခံစက်သည် လှိုင်းလွှင့်ခြင်းမှတစ်ဆင့် ကြီးမားသောဖိုင်လွဲခြင်းများကို မထောက်ပံ့ပါ"</string>
<string name="beam_try_again" msgid="3364677301009783455">"ထပ်ပြီး စက်ကို အတူထားပါ"</string>
@@ -25,7 +25,7 @@
<string name="pairing_peripheral_failed" msgid="6087643307743264679">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>နှင့်မတွဲချိတ်နိုင်ပါ"</string>
<string name="failed_to_enable_bt" msgid="7229153323594758077">"ဘလူးတုသ်ကို မရရှိနိုင်ပါ"</string>
<string name="confirm_pairing" msgid="4112568077038265363">"ဘလူးတုသ်စက်<xliff:g id="DEVICE_NAME">%1$s</xliff:g>နှင့် တွဲချိတ်ရန် ကျိန်းသေပါသလား?"</string>
- <string name="pair_yes" msgid="3525614878559994448">"မှန်ပါသည်"</string>
+ <string name="pair_yes" msgid="3525614878559994448">"Yes"</string>
<string name="pair_no" msgid="5022308368904055020">"No"</string>
<string name="tap_again_to_pay" msgid="5754988005412859897">"<xliff:g id="APP">%1$s</xliff:g>နှင့် ပေးချေရန် နောက်တစ်ခါ ခေါက်ထိပါ"</string>
<string name="tap_again_to_complete" msgid="5423640945118279123">"<xliff:g id="APP">%1$s</xliff:g>နှင့် ပြီးဆုံးရန် နောက်တစ်ခါ ခေါက်ထိပါ"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 56bc2e5f..cc165fa6 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -27,8 +27,8 @@
<string name="confirm_pairing" msgid="4112568077038265363">"Är du säker på att du vill para ihop Bluetooth-enheten <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
<string name="pair_yes" msgid="3525614878559994448">"Ja"</string>
<string name="pair_no" msgid="5022308368904055020">"Nej"</string>
- <string name="tap_again_to_pay" msgid="5754988005412859897">"Tryck igen om du vill betala med <xliff:g id="APP">%1$s</xliff:g>"</string>
- <string name="tap_again_to_complete" msgid="5423640945118279123">"Tryck igen om du vill slutföra med <xliff:g id="APP">%1$s</xliff:g>"</string>
+ <string name="tap_again_to_pay" msgid="5754988005412859897">"Tryck igen för att betala med <xliff:g id="APP">%1$s</xliff:g>"</string>
+ <string name="tap_again_to_complete" msgid="5423640945118279123">"Tryck igen för att slutföra med <xliff:g id="APP">%1$s</xliff:g>"</string>
<string name="transaction_failure" msgid="7828102078637936513">"Transaktionen kunde inte slutföras med <xliff:g id="APP">%1$s</xliff:g>."</string>
<string name="could_not_use_app" msgid="8137587876138569083">"Det gick inte att använda <xliff:g id="APP">%1$s</xliff:g>."</string>
<string name="pay_with" msgid="5531545488795798945">"Betala med"</string>
diff --git a/src/com/android/nfc/BeamShareActivity.java b/src/com/android/nfc/BeamShareActivity.java
index 76629b88..5b8acacd 100644
--- a/src/com/android/nfc/BeamShareActivity.java
+++ b/src/com/android/nfc/BeamShareActivity.java
@@ -76,6 +76,15 @@ public class BeamShareActivity extends Activity {
}
}
+ @Override
+ protected void onDestroy() {
+ try {
+ unregisterReceiver(mReceiver);
+ } catch (Exception e) {
+ Log.w(TAG, e.getMessage());
+ }
+ super.onDestroy();
+ }
private void showNfcDialogAndExit(int msgId) {
IntentFilter filter = new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED);
diff --git a/src/com/android/nfc/NfcService.java b/src/com/android/nfc/NfcService.java
index 90a9bb2f..ab50f23a 100755
--- a/src/com/android/nfc/NfcService.java
+++ b/src/com/android/nfc/NfcService.java
@@ -73,6 +73,7 @@ import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
+import com.android.internal.logging.MetricsLogger;
import com.android.nfc.DeviceHost.DeviceHostListener;
import com.android.nfc.DeviceHost.LlcpConnectionlessSocket;
import com.android.nfc.DeviceHost.LlcpServerSocket;
@@ -86,6 +87,7 @@ import com.android.nfc.handover.HandoverDataParser;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.nio.ByteBuffer;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.HashMap;
@@ -109,6 +111,10 @@ public class NfcService implements DeviceHostListener {
static final String PREF_FIRST_BEAM = "first_beam";
static final String PREF_FIRST_BOOT = "first_boot";
+ static final String TRON_NFC_CE = "nfc_ce";
+ static final String TRON_NFC_P2P = "nfc_p2p";
+ static final String TRON_NFC_TAG = "nfc_tag";
+
static final int MSG_NDEF_TAG = 0;
static final int MSG_LLCP_LINK_ACTIVATION = 1;
static final int MSG_LLCP_LINK_DEACTIVATED = 2;
@@ -124,7 +130,10 @@ public class NfcService implements DeviceHostListener {
static final int MSG_REGISTER_T3T_IDENTIFIER = 12;
static final int MSG_DEREGISTER_T3T_IDENTIFIER = 13;
static final int MSG_TAG_DEBOUNCE = 14;
+ static final int MSG_UPDATE_STATS = 15;
+ // Update stats every 4 hours
+ static final long STATS_UPDATE_INTERVAL_MS = 4 * 60 * 60 * 1000;
static final long MAX_POLLING_PAUSE_TIMEOUT = 40000;
static final int TASK_ENABLE = 1;
@@ -207,6 +216,14 @@ public class NfcService implements DeviceHostListener {
int mDebounceTagDebounceMs;
ITagRemovedCallback mDebounceTagRemovedCallback;
+ // Only accessed on one thread so doesn't need locking
+ NdefMessage mLastReadNdefMessage;
+
+ // Metrics
+ AtomicInteger mNumTagsDetected;
+ AtomicInteger mNumP2pDetected;
+ AtomicInteger mNumHceDetected;
+
// mState is protected by this, however it is only modified in onCreate()
// and the default AsyncTask thread so it is read unprotected from that
// thread
@@ -270,6 +287,8 @@ public class NfcService implements DeviceHostListener {
@Override
public void onHostCardEmulationDeactivated(int technology) {
if (mCardEmulationManager != null) {
+ // Do metrics here so we don't slow the CE path down
+ mNumHceDetected.incrementAndGet();
mCardEmulationManager.onHostCardEmulationDeactivated(technology);
}
}
@@ -295,6 +314,7 @@ public class NfcService implements DeviceHostListener {
*/
@Override
public void onLlcpFirstPacketReceived(NfcDepEndpoint device) {
+ mNumP2pDetected.incrementAndGet();
sendMessage(NfcService.MSG_LLCP_LINK_FIRST_PACKET, device);
}
@@ -370,6 +390,10 @@ public class NfcService implements DeviceHostListener {
mScreenState = mScreenStateHelper.checkScreenState();
+ mNumTagsDetected = new AtomicInteger();
+ mNumP2pDetected = new AtomicInteger();
+ mNumHceDetected = new AtomicInteger();
+
// Intents for all users
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_SCREEN_ON);
@@ -407,6 +431,8 @@ public class NfcService implements DeviceHostListener {
ServiceManager.addService(SERVICE_NAME, mNfcAdapter);
new EnableDisableTask().execute(TASK_BOOT); // do blocking boot tasks
+
+ mHandler.sendEmptyMessageDelayed(MSG_UPDATE_STATS, STATS_UPDATE_INTERVAL_MS);
}
void initSoundPool() {
@@ -1800,6 +1826,7 @@ public class NfcService implements DeviceHostListener {
case MSG_NDEF_TAG:
if (DBG) Log.d(TAG, "Tag detected, notifying applications");
+ mNumTagsDetected.incrementAndGet();
TagEndpoint tag = (TagEndpoint) msg.obj;
byte[] debounceTagUid;
int debounceTagMs;
@@ -1809,26 +1836,6 @@ public class NfcService implements DeviceHostListener {
debounceTagMs = mDebounceTagDebounceMs;
debounceTagRemovedCallback = mDebounceTagRemovedCallback;
}
- if (debounceTagUid != null) {
- if (Arrays.equals(debounceTagUid, tag.getUid())) {
- // Still ignoring this tag...poll again and reset debounce timer
- mHandler.removeMessages(MSG_TAG_DEBOUNCE);
- mHandler.sendEmptyMessageDelayed(MSG_TAG_DEBOUNCE, debounceTagMs);
- tag.disconnect();
- return;
- } else {
- synchronized (NfcService.this) {
- mDebounceTagUid = null;
- }
- if (debounceTagRemovedCallback != null) {
- try {
- debounceTagRemovedCallback.onTagRemoved();
- } catch (RemoteException e) {
- // Ignore
- }
- }
- }
- }
ReaderModeParams readerParams = null;
int presenceCheckDelay = DEFAULT_PRESENCE_CHECK_DELAY;
DeviceHost.TagDisconnectedCallback callback =
@@ -1851,11 +1858,6 @@ public class NfcService implements DeviceHostListener {
}
}
- boolean playSound = readerParams == null ||
- (readerParams.flags & NfcAdapter.FLAG_READER_NO_PLATFORM_SOUNDS) == 0;
- if (mScreenState == ScreenStateHelper.SCREEN_STATE_ON_UNLOCKED && playSound) {
- playSound(SOUND_START);
- }
if (tag.getConnectedTechnology() == TagTechnology.NFC_BARCODE) {
// When these tags start containing NDEF, they will require
// the stack to deal with them in a different way, since
@@ -1868,18 +1870,42 @@ public class NfcService implements DeviceHostListener {
}
NdefMessage ndefMsg = tag.findAndReadNdef();
- if (ndefMsg != null) {
- tag.startPresenceChecking(presenceCheckDelay, callback);
- dispatchTagEndpoint(tag, readerParams);
- } else {
- if (tag.reconnect()) {
- tag.startPresenceChecking(presenceCheckDelay, callback);
- dispatchTagEndpoint(tag, readerParams);
- } else {
+ if (ndefMsg == null) {
+ // First try to see if this was a bad tag read
+ if (!tag.reconnect()) {
+ tag.disconnect();
+ break;
+ }
+ }
+
+ if (debounceTagUid != null) {
+ // If we're debouncing and the UID or the NDEF message of the tag match,
+ // don't dispatch but drop it.
+ if (Arrays.equals(debounceTagUid, tag.getUid()) ||
+ (ndefMsg != null && ndefMsg.equals(mLastReadNdefMessage))) {
+ mHandler.removeMessages(MSG_TAG_DEBOUNCE);
+ mHandler.sendEmptyMessageDelayed(MSG_TAG_DEBOUNCE, debounceTagMs);
tag.disconnect();
- playSound(SOUND_ERROR);
+ return;
+ } else {
+ synchronized (NfcService.this) {
+ mDebounceTagUid = null;
+ mDebounceTagRemovedCallback = null;
+ }
+ if (debounceTagRemovedCallback != null) {
+ try {
+ debounceTagRemovedCallback.onTagRemoved();
+ } catch (RemoteException e) {
+ // Ignore
+ }
+ }
}
}
+
+ mLastReadNdefMessage = ndefMsg;
+
+ tag.startPresenceChecking(presenceCheckDelay, callback);
+ dispatchTagEndpoint(tag, readerParams);
break;
case MSG_LLCP_LINK_ACTIVATION:
if (mIsDebugBuild) {
@@ -1936,6 +1962,7 @@ public class NfcService implements DeviceHostListener {
synchronized (NfcService.this) {
mDebounceTagUid = null;
tagRemovedCallback = mDebounceTagRemovedCallback;
+ mDebounceTagRemovedCallback = null;
}
if (tagRemovedCallback != null) {
try {
@@ -1945,6 +1972,22 @@ public class NfcService implements DeviceHostListener {
}
}
break;
+ case MSG_UPDATE_STATS:
+ if (mNumTagsDetected.get() > 0) {
+ MetricsLogger.count(mContext, TRON_NFC_TAG, mNumTagsDetected.get());
+ mNumTagsDetected.set(0);
+ }
+ if (mNumHceDetected.get() > 0) {
+ MetricsLogger.count(mContext, TRON_NFC_CE, mNumHceDetected.get());
+ mNumHceDetected.set(0);
+ }
+ if (mNumP2pDetected.get() > 0) {
+ MetricsLogger.count(mContext, TRON_NFC_P2P, mNumP2pDetected.get());
+ mNumP2pDetected.set(0);
+ }
+ removeMessages(MSG_UPDATE_STATS);
+ sendEmptyMessageDelayed(MSG_UPDATE_STATS, STATS_UPDATE_INTERVAL_MS);
+ break;
default:
Log.e(TAG, "Unknown message received");
break;
diff --git a/src/com/android/nfc/beam/BeamTransferManager.java b/src/com/android/nfc/beam/BeamTransferManager.java
index a082d8fd..e05c223d 100644
--- a/src/com/android/nfc/beam/BeamTransferManager.java
+++ b/src/com/android/nfc/beam/BeamTransferManager.java
@@ -251,7 +251,8 @@ public class BeamTransferManager implements Handler.Callback,
}
public boolean isRunning() {
- if (mState != STATE_NEW && mState != STATE_IN_PROGRESS && mState != STATE_W4_NEXT_TRANSFER) {
+ if (mState != STATE_NEW && mState != STATE_IN_PROGRESS && mState != STATE_W4_NEXT_TRANSFER
+ && mState != STATE_CANCELLING) {
return false;
} else {
return true;
diff --git a/src/com/android/nfc/cardemulation/CardEmulationManager.java b/src/com/android/nfc/cardemulation/CardEmulationManager.java
index 73ed881a..5f1ff5b8 100644
--- a/src/com/android/nfc/cardemulation/CardEmulationManager.java
+++ b/src/com/android/nfc/cardemulation/CardEmulationManager.java
@@ -32,6 +32,8 @@ import android.nfc.cardemulation.NfcFCardEmulation;
import android.os.Binder;
import android.os.RemoteException;
import android.os.UserHandle;
+import android.os.PowerManager;
+import android.os.SystemClock;
import android.provider.Settings;
import android.util.Log;
@@ -75,6 +77,7 @@ public class CardEmulationManager implements RegisteredServicesCache.Callback,
final Context mContext;
final CardEmulationInterface mCardEmulationInterface;
final NfcFCardEmulationInterface mNfcFCardEmulationInterface;
+ final PowerManager mPowerManager;
public CardEmulationManager(Context context) {
mContext = context;
@@ -91,6 +94,7 @@ public class CardEmulationManager implements RegisteredServicesCache.Callback,
context, mNfcFServicesCache, mT3tIdentifiersCache, this);
mServiceCache.initialize();
mNfcFServicesCache.initialize();
+ mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
}
public INfcCardEmulation getNfcCardEmulationInterface() {
@@ -103,6 +107,9 @@ public class CardEmulationManager implements RegisteredServicesCache.Callback,
public void onHostCardEmulationActivated(int technology) {
+ if (mPowerManager != null) {
+ mPowerManager.userActivity(SystemClock.uptimeMillis(), PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0);
+ }
if (technology == NFC_HCE_APDU) {
mHostEmulationManager.onHostEmulationActivated();
mPreferredServices.onHostEmulationActivated();
@@ -114,6 +121,9 @@ public class CardEmulationManager implements RegisteredServicesCache.Callback,
}
public void onHostCardEmulationData(int technology, byte[] data) {
+ if (mPowerManager != null) {
+ mPowerManager.userActivity(SystemClock.uptimeMillis(), PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0);
+ }
if (technology == NFC_HCE_APDU) {
mHostEmulationManager.onHostEmulationData(data);
} else if (technology == NFC_HCE_NFCF) {
diff --git a/src/com/android/nfc/handover/HandoverDataParser.java b/src/com/android/nfc/handover/HandoverDataParser.java
index eb77aaad..2921c679 100644
--- a/src/com/android/nfc/handover/HandoverDataParser.java
+++ b/src/com/android/nfc/handover/HandoverDataParser.java
@@ -443,15 +443,8 @@ public class HandoverDataParser {
break;
}
- byte[] reversedTK = new byte[len - 1];
- payload.get(reversedTK);
-
byte[] securityManagerTK = new byte[len - 1];
-
- //TK in AD is in reverse order
- for (int i = 0; i < reversedTK.length; i++) {
- securityManagerTK[i] = reversedTK[securityManagerTK.length - 1 - i];
- }
+ payload.get(securityManagerTK);
result.oobData = new OobData();
result.oobData.setSecurityManagerTk(securityManagerTK);