Only check downstream permissions in preflight in RecognitionService

Ensure that, in the preflight permission check, RecognitionService does
not check the service's own permissions. These will be checked if the
RecognitionService tries to access the mic

Fixes: 193111794
Test: manual
Change-Id: I172849f2e0368f9601dc298e6cf96d7a52219e5a
This commit is contained in:
Nate Myren
2021-07-12 16:17:17 -07:00
parent 73ffe99b7b
commit 861ee7a8b7

View File

@@ -115,18 +115,14 @@ public abstract class RecognitionService extends Service {
@NonNull AttributionSource attributionSource) {
try {
if (mCurrentCallback == null) {
Context attributionContext = createContext(new ContextParams.Builder()
.setNextAttributionSource(attributionSource)
.build());
boolean preflightPermissionCheckPassed = checkPermissionForPreflight(
attributionContext.getAttributionSource());
attributionSource);
if (preflightPermissionCheckPassed) {
if (DBG) {
Log.d(TAG, "created new mCurrentCallback, listener = "
+ listener.asBinder());
}
mCurrentCallback = new Callback(listener, attributionSource,
attributionContext);
mCurrentCallback = new Callback(listener, attributionSource);
RecognitionService.this.onStartListening(intent, mCurrentCallback);
}
@@ -293,15 +289,8 @@ public abstract class RecognitionService extends Service {
private Callback(IRecognitionListener listener,
@NonNull AttributionSource attributionSource) {
this(listener, attributionSource, null);
}
private Callback(IRecognitionListener listener,
@NonNull AttributionSource attributionSource,
@Nullable Context attributionContext) {
mListener = listener;
mCallingAttributionSource = attributionSource;
mAttributionContext = attributionContext;
}
/**