总所周知,我是一个比较小懒的人,但是我还是很有责任心的,camera相机模块不是我管辖的内容,但是既然分配给了我这个任务,那就由我来完成就好了。
分屏后相机功能失效,我去请教了一下相机大师,给出的答案是直接去掉相机可以分屏这个问题,他说如果允许相机分屏的话,分屏后的相机以后会出现更多的bug问题,所以干脆就别让相机分屏了,淦!
/packages/apps/Camera2/src/com/android/camera/CameraActivity.java
import android.content.pm.PackageManager.NameNotFoundException;//Me add it to prevent camera split screen[77464][2024/11/22]
@Override
public void onResumeTasks() {
mPaused = false;
checkPermissions();
//Me add it to prevent camera split screen[77464][2024/11/22]
if (isInMultiWindowMode()){
Context ctx = null;
try {
ctx = this.createPackageContext("com.android.systemui",
Context.CONTEXT_INCLUDE_CODE
| Context.CONTEXT_IGNORE_SECURITY);
int stringId = ctx.getResources().getIdentifier(
"dock_non_resizeble_failed_to_dock_text", "string", ctx.getPackageName());
String toast = ctx.getResources().getString(stringId);
Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();
} catch (NameNotFoundException ex) {
Log.e(TAG, "[onCreate] NameNotFoundException ", ex);
}
finish();
}
//Me add it to prevent camera split screen[77464][2024/11/22]
if (!mHasCriticalPermissions) {
Log.v(TAG, "onResume: Missing critical permissions.");
finish();
return;
}
if (!isSecureCamera() && !isCaptureIntent()) {
// Show the dialog if necessary. The rest resume logic will be invoked
// at the onFirstRunStateReady() callback.
try {
mFirstRunDialog.showIfNecessary();
} catch (AssertionError e) {
Log.e(TAG, "Creating camera controller failed.", e);
mFatalErrorHandler.onGenericCameraAccessFailure();
}
} else {
// In secure mode from lockscreen, we go straight to camera and will
// show first run dialog next time user enters launcher.
Log.v(TAG, "in secure mode, skipping first run dialog check");
resume();
}
}
上面就是写了一个当选择让相机分屏的时候,禁止相机分屏并给出提示。