correct sequence about granting permission of SoundTriggerTestApp

After Android S, any SoundTriggerClient should have permission first,
then register the module to framework.

Adjust the grant permission sequence of SoundTriggerTestApp to avoid
confusion.

Bug: b/176943913
Test: Test SoundTriggerTestApp manually.
Change-Id: I3d66119b5fccb27a4dfad880cb7882d0dfb64297
This commit is contained in:
Rios Kao
2022-03-14 14:16:45 +00:00
parent 780bfed3f9
commit 0089aa80f0

View File

@@ -97,13 +97,8 @@ public class SoundTriggerTestActivity extends Activity implements SoundTriggerTe
setVolumeControlStream(AudioManager.STREAM_MUSIC);
// Make sure that the service is started, so even if our activity goes down, we'll still
// have a request for it to run.
startService(new Intent(getBaseContext(), SoundTriggerTestService.class));
// Bind to SoundTriggerTestService.
Intent intent = new Intent(this, SoundTriggerTestService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO},
AUDIO_PERMISSIONS_REQUEST);
}
@Override
@@ -267,12 +262,16 @@ public class SoundTriggerTestActivity extends Activity implements SoundTriggerTe
public synchronized void onCaptureAudioCheckboxClicked(View v) {
// See if we have the right permissions
if (!mService.hasMicrophonePermission()) {
requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO},
AUDIO_PERMISSIONS_REQUEST);
return;
if (mService == null) {
Log.e(TAG, "Can't set capture audio: not bound to SoundTriggerTestService");
} else {
mService.setCaptureAudio(mSelectedModelUuid, mCaptureAudioCheckBox.isChecked());
if (!mService.hasMicrophonePermission()) {
requestPermissions(new String[]{Manifest.permission.RECORD_AUDIO},
AUDIO_PERMISSIONS_REQUEST);
return;
} else {
mService.setCaptureAudio(mSelectedModelUuid, mCaptureAudioCheckBox.isChecked());
}
}
}
@@ -283,8 +282,15 @@ public class SoundTriggerTestActivity extends Activity implements SoundTriggerTe
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
// Make sure that the check box is set to false.
mCaptureAudioCheckBox.setChecked(false);
} else {
// After granted Record_Audio permission, start and bind the service.
// so we can run that sound trigger capability,
// even if our activity goes down, we'll still have a request for it to run.
startService(new Intent(getBaseContext(), SoundTriggerTestService.class));
// Bind to SoundTriggerTestService.
Intent intent = new Intent(this, SoundTriggerTestService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
mService.setCaptureAudio(mSelectedModelUuid, mCaptureAudioCheckBox.isChecked());
}
}