getoutputmediafileuri方法无法访问?

我正在学习如何拍照并将其路径保存到文件中。

根据Android开发者网站上的教程提供的方法

getoutputmediafileuri() ,但是,当我尝试使用该方法时,我发现它是

不可访问或未定义,我的意思是eclipse用红线强调这个方法。 我不知道

如何解决此错误。

请在下面find代码

 public class SaveCameraImageDemoActivity extends Activity { /** Called when the activity is first created. */ Button btn01; private Uri fileURI; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn01 = (Button) findViewById(R.id.btn01); btn01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intenet = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); fileURI = getoutputmediafileuri(); //intenet.putExtra("output", uri.getPath()); startActivityForResult(intenet,0); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { } } 

在android中没有内置方法getoutputmediafileuri() 。 这是一种自定义方法,用于获取文件URI以将捕获的图像存储在特定目录中。 你必须为它定义和放置逻辑。 而不是使用此代码,

编辑:

 btn01.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); imagesFolder.mkdirs(); // <---- File image = new File(imagesFolder, "image_001.jpg"); Uri uriSavedImage = Uri.fromFile(image); imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); startActivityForResult(imageIntent,0); } }); 

现在,这将使用image_001.jpg名称将您的相机捕获图像存储在sdcard的MyImages目录中。

这里定义了getoutputmediafileuri()方法: http : //developer.android.com/guide/topics/media/camera.html#saving-media

现在该文档已添加了代码。 只需粘贴在课程的最后,它对我来说很有用。 代码见下文。

 public static final int MEDIA_TYPE_IMAGE = 1; public static final int MEDIA_TYPE_VIDEO = 2; /** Create a file Uri for saving an image or video */ private static Uri getOutputMediaFileUri(int type){ return Uri.fromFile(getOutputMediaFile(type)); } /** Create a File for saving an image or video */ private static File getOutputMediaFile(int type){ // To be safe, you should check that the SDCard is mounted // using Environment.getExternalStorageState() before doing this. File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), "MyCameraApp"); // This location works best if you want the created images to be shared // between applications and persist after your app has been uninstalled. // Create the storage directory if it does not exist if (! mediaStorageDir.exists()){ if (! mediaStorageDir.mkdirs()){ Log.d("MyCameraApp", "failed to create directory"); return null; } } // Create a media file name String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); File mediaFile; if (type == MEDIA_TYPE_IMAGE){ mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_"+ timeStamp + ".jpg"); } else if(type == MEDIA_TYPE_VIDEO) { mediaFile = new File(mediaStorageDir.getPath() + File.separator + "VID_"+ timeStamp + ".mp4"); } else { return null; } return mediaFile; }