Add isUidActiveOrForeground() for camera/audio to use.
Currently CameraService calls isUidActive() before allowing the camera access. When start/resume activity, WindowManagerService start/resume the activity, then post a runnable to DiaplayThread and ActivityManagerService to update UidRecord's proc state, because the thread switch, the latency before proc state update is undetermined. When CameraService calls ActivityManagerService.isUidActive(), the proc state may not have been updated and camera access is denied. isUidActiveOrForeground() check isUidActive() first, if false, check isUidForeground() which is actually to check with WindowManagerService if the uid is foreground, which is equivalent to ActivityManagerService's uid active, just updated earlier. Bug: 151185692, 151777097, 109950150 Test: manual test. Change-Id: Iffed63293dbdb466e7955fe765ad2aa23a20b3ed
Loading
Please register or sign in to comment