如何在Android中使用自定义摄像头获取URI?

如何在Android中使用自定义摄像头获取URI?,android,camera,android-camera,uri,photo,Android,Camera,Android Camera,Uri,Photo,我正在从使用默认相机切换到最终增加一对,并决定制作一个自定义相机。这只是告诉我我有多不完全理解 就照片而言,这是我在主要活动中的基本做法,但它将不再有效: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); uiHelper.onActivity

我正在从使用默认相机切换到最终增加一对,并决定制作一个自定义相机。这只是告诉我我有多不完全理解

就照片而言,这是我在主要活动中的基本做法,但它将不再有效:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    uiHelper.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {          
        if (requestCode == PICK_PHOTO_REQUEST) {
            if (data == null) {
                Toast.makeText(this, "General Error!", Toast.LENGTH_LONG).show();
            }
            else {

                mMediaUri = data.getData();
            }

            Log.i(TAG, "Media URI: " + mMediaUri);

        }
        else {
            Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            mediaScanIntent.setData(mMediaUri);
            sendBroadcast(mediaScanIntent);
        }

(...)
以下是新相机的图片保存功能以及其他几个功能:

    (...)

    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
    Log.d("Picture taken");
    String path = savePictureToFileSystem(data);
    setResult(path);
    finish();
    }

private static String savePictureToFileSystem(byte[] data) {
    File file = getOutputMediaFile();
    saveToFile(data, file);
    return file.getAbsolutePath();
}

private void setResult(String path) {
    Intent intent = new Intent();
    intent.putExtra(EXTRA_IMAGE_PATH, path);
    setResult(RESULT_OK, intent);
}

   *Credit to Paul Blundell

    (...)
我需要做什么才能让主活动在onactivityresult中接收图像的URI而不是路径字符串?URI是否适用于定制摄像头


请接受并感谢。

您使用定制相机,但想通过Intent完成吗?好的,您在中有绝对文件路径

String abspath = data.getExtras().getString(EXTRA_IMAGE_PATH);
mMediaUri = Uri.fromFile(new File(abspath));

是否从字节[]调用“getExtras()”?您能解释一下吗?@0mahc0:
数据是一个意图,请参见
onActivityResult()