You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android自定义相机开发:无法初始化CameraManager类问题求助

Android自定义相机:CameraManager实例创建失败解决方法

CameraManager的构造方法是**包私有(package-private)**的,无法直接通过CameraManager()实例化,必须通过系统服务获取实例。

正确实现代码

import android.content.Context
import android.hardware.camera2.CameraManager
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class CameraActivity : AppCompatActivity() {
    private lateinit var cameraManager: CameraManager

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_camera)

        // 通过系统服务获取CameraManager实例
        cameraManager = getSystemService(Context.CAMERA_SERVICE) as CameraManager
        getCameraList()
    }

    private fun getCameraList() {
        // 获取所有相机ID列表
        val cameraIds = cameraManager.cameraIdList
        // 遍历处理相机ID
        cameraIds.forEach { cameraId ->
            // 示例:打印相机ID
            println("相机ID: $cameraId")
        }
    }
}

注意事项

  • 权限配置:在AndroidManifest.xml中添加相机权限:
    <uses-permission android:name="android.permission.CAMERA" />
    
    Android 6.0(API 23)及以上版本,还需在代码中动态申请相机权限。
  • API级别要求:Camera2 API(包括CameraManager)要求最低SDK版本为21,需在build.gradle中设置:
    android {
        defaultConfig {
            minSdkVersion 21
        }
    }
    

内容的提问来源于stack exchange,提问作者Dileep Raj B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:22:02