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

相机不进入onActivityResult

卢树
2023-03-14

我正试图拍摄一张照片并将照片发送到服务器,但目前我没有进入onActivityResult,也不知道发生了什么

代码如下:

public void capturar(View view){
        Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(intent,REQUEST_IMAGE_CAPTURE);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            String encodedImage = encodeImage(imageBitmap);
            Log.d("encoded",encodedImage);
            sendImage(encodedImage);
        }
    }

我可以预览相机,但在android照片上的点击没有击中activiyt结果上的log.d,有什么提示吗?

logcat:

05-16 23:50:36.304 9940-9940/com.example.afcosta.inesctec.pt.android E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                       Process: com.example.afcosta.inesctec.pt.android, PID: 9940
                                                                                       java.lang.IllegalStateException: Could not execute method for android:onClick
                                                                                           at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                                                           at android.view.View.performClick(View.java:5637)
                                                                                           at android.view.View$PerformClick.run(View.java:22429)
                                                                                           at android.os.Handler.handleCallback(Handler.java:751)
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                           at android.os.Looper.loop(Looper.java:154)
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
                                                                                        Caused by: java.lang.reflect.InvocationTargetException
                                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                                           at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                                           at android.view.View.performClick(View.java:5637) 
                                                                                           at android.view.View$PerformClick.run(View.java:22429) 
                                                                                           at android.os.Handler.handleCallback(Handler.java:751) 
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                           at android.os.Looper.loop(Looper.java:154) 
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:6119) 
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
                                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
                                                                                        Caused by: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.android.camera/.Camera } from ProcessRecord{631d205 9940:com.example.afcosta.inesctec.pt.android/u0a74} (pid=9940, uid=10074) with revoked permission android.permission.CAMERA
                                                                                           at android.os.Parcel.readException(Parcel.java:1684)
                                                                                           at android.os.Parcel.readException(Parcel.java:1637)
                                                                                           at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3101)
                                                                                           at android.app.Instrumentation.execStartActivity(Instrumentation.java:1518)
                                                                                           at android.app.Activity.startActivityForResult(Activity.java:4225)
                                                                                           at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50)
                                                                                           at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79)
                                                                                           at android.app.Activity.startActivityForResult(Activity.java:4183)
                                                                                           at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
                                                                                           at com.example.afcosta.inesctec.pt.android.MainMenu.capturar(MainMenu.java:55)
                                                                                           at java.lang.reflect.Method.invoke(Native Method) 
                                                                                           at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                                                                                           at android.view.View.performClick(View.java:5637) 
                                                                                           at android.view.View$PerformClick.run(View.java:22429) 
                                                                                           at android.os.Handler.handleCallback(Handler.java:751) 
                                                                                           at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                           at android.os.Looper.loop(Looper.java:154) 
                                                                                           at android.app.ActivityThread.main(ActivityThread.java:6119) 

共有1个答案

禄光霁
2023-03-14

您的清单中缺少访问相机硬件的权限。加:

<uses-feature android:name="android.hardware.camera" />

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
 类似资料:
  • “相机”组件定义用户从哪个角度查看场景。相机通常与允许输入设备移动和旋转相机的控件组件配对。 例子 位于人眼平均高度(1.6米)的照相机。 <a-entity camera= "userHeight: 1.6" look-controls></a-entity> 属性 属性 描述 默认值 active 在具有多个摄影机的场景中,摄影机是否为活动摄

  • CameraContext jd.createCameraContext() 创建 camera上下文 CameraContext 对象。

  • 问题内容: 有人知道如何将其用于mediarecorder吗?我正在使用 记录器.setPreviewDisplay(holder.getSurface)其中的持有人-它是相机(我在手机屏幕上看到胸部矩形)当我运行我的应用程序时- 在logcat中我看到错误(相机不可用),我尝试使用setCamera函数-但它是不帮我。有人知道如何正确使用它吗? 或者也许我可以以其他方式录制视频(仅视频,不带音频

  • 我可以按下一个按钮,打开原生相机app,成功拍下一张照片。但当我查看手机上的照片库或原生应用程序时,照片并没有保存在那里。我对Android很陌生,所以很可能我的代码中遗漏了一些重要的东西。 问题: 1)这些图片保存在哪里? 2)我是否可以修改下面的代码,以保存到内部存储,所以所有的图片拍摄与我的应用程序是私人的,只能通过我的应用程序访问? 3)如果我想将这些图片连同一些文本/其他输入一起保存到一

  • 问题内容: 我有一个自定义的相机应用程序,可以预览SurfaceView上的相机视频输出并尝试拍照,应该通过“ xzing”扫描仪API处理图片以解码图像中的任何条形码。 我的应用可以正确预览,不会引发任何错误或期望, 但是我的onPictureTaken(byte [] imgData,Camera camera)方法和PictureCallback从未被调用,因此无法获取图像并继续进行进一步的

  • 相机控制了场景的观察视角。有很多相机操控方法,比如旋转、缩放、平移以及飞行定位。Cesium默认支持使用鼠标和触摸事件控制相机。Cesium也提供了一套可编程的相机控制API。这篇教程就是介绍相机相关知识,以及API。 快速开始 开始示例。打开Sandcastle的 Hello World 示例。默认场景按照下述方式处理鼠标和处理事件: 左键单击和拖拽 – 沿着地球表面平移(调整相机位置). 右键