Use ActivityService from lock screen

Use ActivityService to avoid Camera API errors while accessing the
camera while the device is still locked

Bug: 221385197, 221385117
Test: Manually
Change-Id: I0d2800340cabe2e153b0d07c21f52938112c21ca
This commit is contained in:
ronish
2022-03-07 14:25:06 +00:00
committed by Ronish Kalia
parent ae758aa7a5
commit 26231bf702

View File

@@ -32,7 +32,6 @@ import android.app.ActivityManager;
import android.app.ActivityOptions;
import android.app.ActivityTaskManager;
import android.app.admin.DevicePolicyManager;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
@@ -1109,8 +1108,13 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
Intent intent = mQRCodeScannerController.getIntent();
if (intent != null) {
try {
mContext.startActivity(intent);
} catch (ActivityNotFoundException e) {
ActivityTaskManager.getService().startActivityAsUser(
null, getContext().getBasePackageName(),
getContext().getAttributionTag(), intent,
intent.resolveTypeIfNeeded(getContext().getContentResolver()),
null, null, 0, Intent.FLAG_ACTIVITY_NEW_TASK, null, null,
UserHandle.CURRENT.getIdentifier());
} catch (RemoteException e) {
// This is unexpected. Nonetheless, just log the error and prevent the UI from
// crashing
Log.e(TAG, "Unexpected intent: " + intent