从相机onActivityResult获取结果后重新加载片段

时间:2017-04-03 10:24:43

标签: android camera fragment onactivityresult

在使用5.1版本的Micromax Q424时,从选择的相机或图库onActivityResult获取结果后重新加载Android Fragment。在其他移动设备中工作但在Micromax Q424中重新加载片段。获得结果后如何避免。

1 个答案:

答案 0 :(得分:0)

您是否已授予使用相机所需的权限,还需要运行时权限以及清单权限。

public boolean CheckPermissionForWriteStorage() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
                checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

            requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                    PERMISSIONS_REQUEST_CODE_WRITE_EXTERNAL_STORAGE);

            return false;
        }

        return true;
    }

使用上面的代码获取权限 以及onACtivityResult中的代码

 final boolean isCamera;
                if (data == null) {
                    isCamera = true;
                } else {
                    final String action = data.getAction();
                    if (action == null) {
                        isCamera = false;
                    } else {
                        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
                            isCamera = true;
                        } else {
                            isCamera = action.equalsIgnoreCase(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                        }
                    }
                }

                if (isCamera) {
                    String selectedImagePath = getImagePath();

                    aQuery.id(imgFarmerPhoto).image(selectedImagePath);
                } else {
                    String selectedImagePath = getAbsolutePath(data.getData());
                    selectedImagePath = getRightAngleImage(selectedImagePath);
                    aQuery.id(imgFarmerPhoto).image(selectedImagePath);
                }