Verify NFC permission immediately on API calls.

Bug: 18358968
Change-Id: I648494e6435e107337e0c5bc4c6328774f9a54be
This commit is contained in:
Martijn Coenen
2014-11-13 15:00:56 -08:00
parent 031d8feaa9
commit d8bcfbadf7
2 changed files with 30 additions and 0 deletions

View File

@@ -60,4 +60,6 @@ interface INfcAdapter
void addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList);
void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
void verifyNfcPermission();
}

View File

@@ -252,7 +252,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
isResumed = state.resumed;
}
if (isResumed) {
// requestNfcServiceCallback() verifies permission also
requestNfcServiceCallback();
} else {
// Crash API calls early in case NFC permission is missing
verifyNfcPermission();
}
}
@@ -266,7 +270,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
isResumed = state.resumed;
}
if (isResumed) {
// requestNfcServiceCallback() verifies permission also
requestNfcServiceCallback();
} else {
// Crash API calls early in case NFC permission is missing
verifyNfcPermission();
}
}
@@ -279,7 +287,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
isResumed = state.resumed;
}
if (isResumed) {
// requestNfcServiceCallback() verifies permission also
requestNfcServiceCallback();
} else {
// Crash API calls early in case NFC permission is missing
verifyNfcPermission();
}
}
@@ -293,7 +305,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
isResumed = state.resumed;
}
if (isResumed) {
// requestNfcServiceCallback() verifies permission also
requestNfcServiceCallback();
} else {
// Crash API calls early in case NFC permission is missing
verifyNfcPermission();
}
}
@@ -306,7 +322,11 @@ public final class NfcActivityManager extends IAppCallback.Stub
isResumed = state.resumed;
}
if (isResumed) {
// requestNfcServiceCallback() verifies permission also
requestNfcServiceCallback();
} else {
// Crash API calls early in case NFC permission is missing
verifyNfcPermission();
}
}
@@ -322,6 +342,14 @@ public final class NfcActivityManager extends IAppCallback.Stub
}
}
void verifyNfcPermission() {
try {
NfcAdapter.sService.verifyNfcPermission();
} catch (RemoteException e) {
mAdapter.attemptDeadServiceRecovery(e);
}
}
/** Callback from NFC service, usually on binder thread */
@Override
public BeamShareData createBeamShareData() {