Disable NFC if policy disallow in foreground NDEF case
- Before this fix, NFC is only disabled in "default NDEF" cases, if NDEF callback is in foreground,
it will continue to send the beam without checking for policy.
Bug: 21742271
Change-Id: I19dd83160623bcfcc3e7cb2b0ffb5c4329e92d17
diff --git a/src/com/android/nfc/P2pLinkManager.java b/src/com/android/nfc/P2pLinkManager.java
index a930dbd..6139199 100755
--- a/src/com/android/nfc/P2pLinkManager.java
+++ b/src/com/android/nfc/P2pLinkManager.java
@@ -443,6 +443,11 @@
return;
}
+ if (isBeamDisabled(foregroundUids.get(0))) {
+ if (DBG) Log.d(TAG, "Beam is disabled by policy.");
+ return;
+ }
+
if (mCallbackNdef != null) {
if (foregroundUids.contains(mNdefCallbackUid)) {
try {
@@ -467,8 +472,7 @@
// application disabled this explicitly in their manifest.
String[] pkgs = mPackageManager.getPackagesForUid(foregroundUids.get(0));
if (pkgs != null && pkgs.length >= 1) {
- if (!generatePlayLink || beamDefaultDisabled(pkgs[0])
- || isBeamDisabled(foregroundUids.get(0))) {
+ if (!generatePlayLink || beamDefaultDisabled(pkgs[0])) {
if (DBG) Log.d(TAG, "Disabling default Beam behavior");
mMessageToSend = null;
mUrisToSend = null;