summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorles_lee <les_lee@htc.com>2016-06-10 15:51:11 +0800
committerAarthi Thiruvengadam <athiru@google.com>2016-06-20 08:59:16 -0700
commitafaa38cf7e606a504bb5a8322dffdf57491f041c (patch)
tree18dee62ab717a454c40776435ffb010741d5c9e5
parent839f30fd187474a7c8356e645125caca1d197533 (diff)
downloadandroid_packages_apps_Nfc-afaa38cf7e606a504bb5a8322dffdf57491f041c.tar.gz
android_packages_apps_Nfc-afaa38cf7e606a504bb5a8322dffdf57491f041c.tar.bz2
android_packages_apps_Nfc-afaa38cf7e606a504bb5a8322dffdf57491f041c.zip
nfc: Clock up temporarily when doing NFC payment transaction
Provide user interaction hint during NFC payment transaction to meet timing requirements. Bug: 29039566 Change-Id: Ia57e2e1af547049258c11f3b427f72a97528c0e5
-rwxr-xr-xAndroidManifest.xml3
-rw-r--r--src/com/android/nfc/cardemulation/CardEmulationManager.java10
2 files changed, 13 insertions, 0 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/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) {