简体   繁体   English

MediaStore.ACTION_IMAGE_CAPTURE

[英]MediaStore.ACTION_IMAGE_CAPTURE

I am using the following code to open an intent to capture and image and return the result with a specific request_code 我正在使用以下代码来打开捕获和成像的意图,并使用特定的request_code返回结果

    Intent imageCapture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File mediaStorageDir=new File(Environment.getExternalStorageDirectory(),"zzz");
    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            Log.d("zzz", "failed to create directory");
            return null;
        }
    }
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
    Uri imageFile=Uri.fromFile(new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg"));
    Log.d("zzz",""+imageFile); // to check whether filename is correct or not!!!
    imageCapture.putExtra(MediaStore.EXTRA_OUTPUT, imageFile);      
    startActivityForResult(imageCapture, 1);

This intent shows the camera intent for capturing an image and does everything just as fine. 此意图表明相机拍摄图像的意图,并且一切都很好。 It also captures the image, but just when the save button is clicked, it encounters a runtimeException. 它还捕获图像,但是仅在单击保存按钮时,它会遇到runtimeException。

    03-17 09:34:32.324: E/AndroidRuntime(26771): FATAL EXCEPTION: main
    03-17 09:34:32.324: E/AndroidRuntime(26771): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {idiot.houses.numberslider/idiot.houses.numberslider.MainActivity}: java.lang.NullPointerException
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3205)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3248)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread.access$1200(ActivityThread.java:140)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1285)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.os.Handler.dispatchMessage(Handler.java:99)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.os.Looper.loop(Looper.java:137)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread.main(ActivityThread.java:4921)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at java.lang.reflect.Method.invokeNative(Native Method)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at java.lang.reflect.Method.invoke(Method.java:511)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at dalvik.system.NativeStart.main(Native Method)
    03-17 09:34:32.324: E/AndroidRuntime(26771): Caused by: java.lang.NullPointerException
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at edu.vuum.mocca.ui.story.CreateStoryFragment.onActivityResult(CreateStoryFragment.java:316)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at edu.vuum.mocca.ui.story.StoryActivityBase.onActivityResult(StoryActivityBase.java:291)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.Activity.dispatchActivityResult(Activity.java:5372)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3201)
    03-17 09:34:32.324: E/AndroidRuntime(26771):    ... 11 more

I think following code is helpful to you. 我认为以下代码对您有所帮助。

//code for calling intent
        String fileName = "temp.jpg";  
        ContentValues values = new ContentValues();  
        values.put(MediaStore.Images.Media.TITLE, fileName);  
        mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);  

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
        intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);  
        startActivityForResult(intent, PICK_FROM_CAMERA);

//code write in onActivityResult() method //代码写入onActivityResult()方法

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode != Activity.RESULT_OK)
        return;
    switch (requestCode) {

    case PICK_FROM_CAMERA:
        String[] projection = { MediaStore.Images.Media.DATA}; 
        Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null); 
        int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
        cursor.moveToFirst(); 
        String capturedImageFilePath = cursor.getString(column_index_data);
                   break;
        }
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 MediaStore.ACTION_IMAGE_CAPTURE提供NullPointerException - MediaStore.ACTION_IMAGE_CAPTURE giving NullPointerException 具有action =“ MediaStore.ACTION_IMAGE_CAPTURE”的意图的类别是什么? - What is the class for the intent with action = “MediaStore.ACTION_IMAGE_CAPTURE”? Android MediaStore.ACTION_IMAGE_CAPTURE和Intent.ACTION_PICK - Android MediaStore.ACTION_IMAGE_CAPTURE and Intent.ACTION_PICK 从Intent(MediaStore.ACTION_IMAGE_CAPTURE)获取图像uri - get image uri from Intent(MediaStore.ACTION_IMAGE_CAPTURE) 应用Intent MediaStore导致应用程序崩溃 - App crashing with Intent MediaStore.ACTION_IMAGE_CAPTURE 没有为意图MediaStore调用Google GlassOnActivityResult。ACTION_IMAGE_CAPTURE - Google Glass OnActivityResult not called for intent MediaStore.ACTION_IMAGE_CAPTURE 无法将文件路径添加到MediaStore.ACTION_IMAGE_CAPTURE意向 - Trouble with adding file path to the MediaStore.ACTION_IMAGE_CAPTURE intent 如何使用自定义相机活动替换MediaStore.ACTION_IMAGE_CAPTURE? - How to replace MediaStore.ACTION_IMAGE_CAPTURE with a custom camera activity? MediaStore.ACTION_IMAGE_CAPTURE之后,onActivityResult中的位图为空 - Bitmap is null in onActivityResult after MediaStore.ACTION_IMAGE_CAPTURE 找不到用于处理MediaStore.ACTION_IMAGE_CAPTURE目的的活动 - No Activity found to handle MediaStore.ACTION_IMAGE_CAPTURE Intent
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM