Verify NFC permission immediately on API calls.
Bug: 18358968 Change-Id: I648494e6435e107337e0c5bc4c6328774f9a54be
This commit is contained in:
@@ -60,4 +60,6 @@ interface INfcAdapter
|
||||
|
||||
void addNfcUnlockHandler(INfcUnlockHandler unlockHandler, in int[] techList);
|
||||
void removeNfcUnlockHandler(INfcUnlockHandler unlockHandler);
|
||||
|
||||
void verifyNfcPermission();
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user