gpt4 book ai didi

android - 请求运行时权限后,Surfaceview 未立即创建

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:13 27 4
gpt4 key购买 nike

我被 Surfaceviewruntime perssion 这个问题困住了,

我需要在主要 Activity 中使用 Surfaceview 显示相机预览,因此我在调用代码以显示相机预览时请求运行时权限。

但是我在为相机授予权限后立即初始化 Surfaceview,那时 surfaceCreated() 回调永远不会调用并且权限也被授予(我已经从设置中检查过)。

一旦我终止应用程序并再次打开,它就可以完美运行。

这是我的初始化代码,

MainActivity中,

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
initCameraPreview();
}

在 initCameraPreview() 方法中,

public void initCameraPreview(){
StartCameraPreview preview = new StartCameraPreview(context, surfaceView);

preview.onCreate();
}

我已经为 SurfaceView 创建了类,StartCameraPreview.java

public StartCameraPreview(Context context, SurfaceView surfaceView) {
this.mContext = context;
this.surfaceView = surfaceView;
}

public void onCreate() {
if (checkCameraHardware()) {
mCamera = getCameraInstance();

// configure preview
previewHolder = surfaceView.getHolder();
previewHolder.addCallback(surfaceCallback);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
}

抱歉,我无法分享大部分代码。所以我刚刚添加了初始化代码。有没有人遇到过这个问题,或者有人知道解决这个问题的方法吗?

请帮忙提前致谢。

最佳答案

尝试将 SurfaceView 的可见性最初设置为 INVISIBLE,并在授予权限后将其设置为 VISIBLE。这样,在许可结果之后创建绘图表面。希望这可以帮助。

关于android - 请求运行时权限后,Surfaceview 未立即创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44673985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com