当前位置: 首页 > 知识库问答 >
问题:

手电筒应用无法连接到摄像头服务

屠兴旺
2023-03-14

这是我的代码:

我添加了一个github权限代码,但它仍然崩溃

我做了每件事,但每次都失败了

我也在我的舱单上增加了摄像头的权限

                    parameter = camera.getParameters();
                }
                @Override public void onPermissionDenied(PermissionDeniedResponse response) {
                    Toast.makeText(getApplicationContext(), "Permission Denied", Toast.LENGTH_SHORT).show();
                    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                    builder.setMessage("App needs permission to access camera")
                            .setPositiveButton("Granted", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int id) {
                                    Intent myAppSettings = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + getPackageName()));
                                    myAppSettings.addCategory(Intent.CATEGORY_DEFAULT);
                                    myAppSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                    startActivity(myAppSettings);

                                }
                            }).setNegativeButton("Denied", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                        }
                    }).create().show();
                }
                @Override public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token)
                {[enter image description here][1]
                    token.continuePermissionRequest();
                }

            }).check();





    //getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    textview = (TextView) findViewById(R.id.textView);
    flashLight = (ImageButton) findViewById(R.id.flash_light);

//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_Grait);

    //askPermission(CAMERA,camera1);






    flashLight.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!isFlashLightOn) {
                turnOnTheFlash();
            } else {
                turnOffTheFlash();
            }
        }
    });

LogCat:

09-30 18:59:31.698 11339-11339/微笑。通用域名格式。androidflashlightapp E/AndroidRuntime:致命异常:主要过程:诱导微笑。通用域名格式。androidflashlightapp,PID:11339 java。lang.RuntimeException:无法继续活动{inducesmile.com.androidflashlightapp/inducesmile.com.androidflashlightapp.main活动}:java。lang.RuntimeException:无法连接到android上的摄像头服务。应用程序。活动线程。在android上执行SumeActivity(ActivityThread.java:3506)。应用程序。活动线程。android上的handleResumeActivity(ActivityThread.java:3546)。应用程序。活动线程。android上的handleLaunchActivity(ActivityThread.java:2795)。应用程序。活动线程-android上的wrap12(ActivityThread.java)。应用程序。android上的ActivityThread$H.handleMessage(ActivityThread.java:1527)。操作系统。汉德勒。android上的dispatchMessage(Handler.java:110)。操作系统。活套。android上的loop(Looper.java:203)。应用程序。活动线程。java上的main(ActivityThread.java:6251)。朗,反思一下。方法在com上调用(本机方法)。Android内部的操作系统。ZygoteInit$MethodandArgscaler。在com上运行(zyteinit.java:1073)。Android内部的操作系统。合子体。main(ZygoteInit.java:934)由以下原因引起:java。lang.RuntimeException:无法连接到android上的摄像头服务。硬件照相机(Camera.java:647)在android上。硬件照相机打开(Camera.java:510)的微笑。通用域名格式。AndroidLashLightApp。主要活动。关闭Flash(MainActivity.java:105)。通用域名格式。AndroidLashLightApp。主要活动。android上的onResume(MainActivity.java:165)。应用程序。仪器。android上的callActivityOnResume(Instrumentation.java:1269)。应用程序。活动android上的performResume(Activity.java:6791)。应用程序。活动线程。在android上执行SumeActivity(ActivityThread.java:3477)。应用程序。活动线程。handleResumeActivity(ActivityThread.java:3546)

共有2个答案

陶树
2023-03-14

如果看不到TurnOffFlash和TurnOffFlash功能,很难判断,但我猜您在文档中显示的某个时刻没有正确释放相机。

范浩宕
2023-03-14

几个月前,我还开发了一款基于手电筒传感器的应用程序。我已经为flashlight活动的代码(java和xml)创建了要点,它似乎运行良好。请查看以下链接,看看是否有帮助:

https://gist.github.com/robillo/b27d37be3262164ee7f5532230c28c5a

https://gist.github.com/robillo/71afef65923138ed9d6011e3bd216249

另外,请尝试在onCreate()中的if块中处理活动的一部分,如:

askForPermissions();
if(checkForPermission()){
    //Do your processing here
}

功能包括:

void askForPermissions(){
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if(getActivity().checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
            getActivity().requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
        }
    }
}

boolean checkForPermission(){
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
 类似资料:
  • 我按照这个旋转捕获的图像。但我有一个错误。 我的代码 LogCat错误 这是236号线 我怎样才能解决这个问题?我从中找到了很多解决方案,但我仍然不知道如何解决它。有人能帮我解决这个问题吗?任何帮助都会很好,谢谢!!

  • 一个简洁实用的手电筒应用,没有多余的花样,一开即亮,支持1-10hz的闪频。 开发者@Jaykie 温馨提示:连续使用手电筒会显著缩短电池寿命! [Code4App.com]

  • 京宝手电筒是我发布的第一个作品,主要是利用手机屏幕变色来提供照明服务的,通过点击屏幕变换颜色, 希望大家给点试用且给一些好的建议,此版本是基于android 1.5开发的,有需要源码的朋友加我QQ 软件里有 如果下载不了可以到http://down.51cto.com/data/165043 来下载

  • 后摄像头工作正常,但是,当我们从后摄像头切换到前摄像头时,它会崩溃(在使用MediaCorder录制视频的情况下)....它显示了我在日志中显示的错误!! 下面是我的代码: 对于初始化,我使用

  • 使用手机摄像头拍摄图像可以通过使用PhotoIntent然后上传拍摄的图像是成功的,我可以观察到Firebase存储中拍摄的图像,但我无法从Firebase存储加载图像,我只查看占位符,但从图库加载到图像视图并可见。可能是什么问题,我和photoIntent正在使用Picasso库从Firebase存储渲染此图像?如有任何帮助,我们将不胜感激。附加方法从Firebase实时数据库接收图像url,并

  • 我的grails 2.1.0应用程序是在cloudfoundry中部署和运行的,使用mysql服务,昨天我做了一些更改,更新后无法再次运行。我没有对数据源进行任何更改。 通过查看tomcat日志,看起来数据库设置在部署时没有被覆盖,如文档中所述,并且存在一个异常消息“无法为连接URL“JDBC:h2:prodDb;MVCC=TRUE”创建类为“com.mysql.JDBC.driver”的JDBC