发送捕获图像作为uri?

时间:2017-04-13 08:56:17

标签: android firebase firebase-realtime-database

我的应用程序具有以下功能:编辑照片,删除照片,拍摄照片,当我捕捉和编辑照片时,我的应用程序中显示的照片发生变化,当用户按下编辑个人资料时,它会将照片更改为我的Firebase数据库作为一个uri。

问题是我有一个定义selectedImage的全局var,而且该变量是一个URI,我需要的是当我捕获照片时从foto获取uri,但是URi uri = data.getData()会导致错误,它只是与捆绑附加功能一起使用,但是我从那里知道URI怎么能这样做呢?

这是代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check which request we're responding to
    if (requestCode == GALLERY_IMG  && resultCode == RESULT_OK) {
        selectedimg = data.getData();
        try {
            userImage.setImageBitmap(MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedimg));
            imageHasChanged = true;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    if (requestCode == IMAGE_CAPTURE  && resultCode == RESULT_OK) {
        Bundle extra = data.getExtras();
        //selectedimg = extra;
        try {
            userImage.setImageBitmap(MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedimg));
            imageHasChanged = true;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

栈跟踪

  --------- beginning of crash
04-13 09:12:53.497 2962-2962/com.esmad.pdm.friendlymanager E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.esmad.pdm.friendlymanager, PID: 2962
                                                                             java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=3, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.esmad.pdm.friendlymanager/com.esmad.pdm.friendlymanager.UserSettings}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
                                                                                 at android.app.ActivityThread.deliverResults(ActivityThread.java:3574)
                                                                                 at android.app.ActivityThread.handleSendResult(ActivityThread.java:3617)
                                                                                 at android.app.ActivityThread.access$1300(ActivityThread.java:151)
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1352)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                 at android.os.Looper.loop(Looper.java:135)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                              Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
                                                                                 at android.content.ContentResolver.openInputStream(ContentResolver.java:630)
                                                                                 at android.provider.MediaStore$Images$Media.getBitmap(MediaStore.java:835)
                                                                                 at com.esmad.pdm.friendlymanager.UserSettings.onActivityResult(UserSettings.java:170)
                                                                                 at android.app.Activity.dispatchActivityResult(Activity.java:6192)
                                                                                 at android.app.ActivityThread.deliverResults(ActivityThread.java:3570)
                                                                                 at android.app.ActivityThread.handleSendResult(ActivityThread.java:3617) 
                                                                                 at android.app.ActivityThread.access$1300(ActivityThread.java:151) 
                                                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1352) 
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                 at android.os.Looper.loop(Looper.java:135) 
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                                 at java.lang.reflect.Method.invoke(Native Method) 
                                                                                 at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
04-13 09:12:53.501 1530-1724/system_process W/ActivityManager:   Force finishing activity 1 com.esmad.pdm.friendlymanager/.UserSettings
04-13 09:12:53.514 1530-3823/system_process W/DropBoxManagerService: Dropping: data_app_crash (1816 > 0 bytes)
04-13 09:12:53.530 1530-3824/system_process D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
04-13 09:12:53.531 1530-1549/system_process D/Atlas: Validating map...

0 个答案:

没有答案