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) { } } 

Solutions Collecting From Web of "getoutputmediafileuri方法不可访问?"

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); } }); 

现在这将把你的相机捕获的图像存储在sdcard中的MyImages目录中,并带有image_001.jpg名称。

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

现在文档已经添加了代码。 只要粘贴在你的Class结束,它对我来说很好。 代码见下文。

 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; }