diff options
Diffstat (limited to 'nxp')
-rw-r--r-- | nxp/jni/com_android_nfc_NativeNfcManager.cpp | 23 | ||||
-rwxr-xr-x | nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java | 3 |
2 files changed, 19 insertions, 7 deletions
diff --git a/nxp/jni/com_android_nfc_NativeNfcManager.cpp b/nxp/jni/com_android_nfc_NativeNfcManager.cpp index c80141e6..cfbab9bd 100644 --- a/nxp/jni/com_android_nfc_NativeNfcManager.cpp +++ b/nxp/jni/com_android_nfc_NativeNfcManager.cpp @@ -1360,7 +1360,7 @@ static void com_android_nfc_NfcManager_disableDiscovery(JNIEnv *e, jobject o) // TODO: use enable_lptd static void com_android_nfc_NfcManager_enableDiscovery(JNIEnv *e, jobject o, jint modes, - jboolean, jboolean reader_mode, jboolean restart) + jboolean, jboolean reader_mode, jboolean enable_p2p, jboolean restart) { NFCSTATUS ret; struct nfc_jni_native_data *nat; @@ -1393,17 +1393,28 @@ static void com_android_nfc_NfcManager_enableDiscovery(JNIEnv *e, jobject o, jin if (modes != 0) { - if (reader_mode) + + if (enable_p2p) + { + nat->p2p_initiator_modes = phNfc_eP2P_ALL; + nat->p2p_target_modes = 0x0E; // All passive except 106, active + nat->discovery_cfg.Duration = 300000; /* in ms */ + } + else { nat->p2p_initiator_modes = 0; nat->p2p_target_modes = 0; + nat->discovery_cfg.Duration = 200000; /* in ms */ + + } + + if (reader_mode) + { nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = TRUE; nat->discovery_cfg.Duration = 200000; /* in ms */ } else { - nat->p2p_initiator_modes = phNfc_eP2P_ALL; - nat->p2p_target_modes = 0x0E; // All passive except 106, active nat->discovery_cfg.PollDevInfo.PollCfgInfo.DisableCardEmulation = FALSE; nat->discovery_cfg.Duration = 300000; /* in ms */ } @@ -1414,7 +1425,7 @@ static void com_android_nfc_NfcManager_enableDiscovery(JNIEnv *e, jobject o, jin nat->discovery_cfg.PollDevInfo.PollCfgInfo.EnableIso15693 = (modes & 0x08) != 0; } - nfc_jni_start_discovery_locked(nat, restart); + nfc_jni_start_discovery_locked(nat, false); clean_and_return: CONCURRENCY_UNLOCK(); } @@ -2369,7 +2380,7 @@ static JNINativeMethod gMethods[] = {"doDeinitialize", "()Z", (void *)com_android_nfc_NfcManager_deinitialize}, - {"doEnableDiscovery", "(IZZZ)V", + {"doEnableDiscovery", "(IZZZZ)V", (void *)com_android_nfc_NfcManager_enableDiscovery}, {"doCheckLlcp", "()Z", diff --git a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java index cc73db3b..805e1eac 100755 --- a/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java +++ b/nxp/src/com/android/nfc/dhimpl/NativeNfcManager.java @@ -161,11 +161,12 @@ public class NativeNfcManager implements DeviceHost { private native void doEnableDiscovery(int techMask, boolean enableLowPowerPolling, boolean enableReaderMode, + boolean enableP2p, boolean restart); @Override public void enableDiscovery(NfcDiscoveryParameters params, boolean restart) { doEnableDiscovery(params.getTechMask(), params.shouldEnableLowPowerDiscovery(), - params.shouldEnableReaderMode(), restart); + params.shouldEnableReaderMode(), params.shouldEnableP2p(), restart); } @Override |