如何在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()
。