package com.example.camera;import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import android.app.Activity;import android.content.Intent;import android.util.Log;import android.view.Menu;import android.widget.Toast;public class MainActivity extends Activity {    private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;    private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;        public static final int MEDIA_TYPE_IMAGE = 1;public static final int MEDIA_TYPE_VIDEO = 2;private Uri fileUri;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);             // create Intent to take a picture and return control to the calling application        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name        // start the image capture Intent        startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    /** 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), "fblog");        // 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("fblog", "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;    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {            if (resultCode == RESULT_OK) {                // Image captured and saved to fileUri specified in the Intent                Toast.makeText(this, "Image saved to:\n" +                         data.getData(), Toast.LENGTH_LONG).show();            } else if (resultCode == RESULT_CANCELED) {                // User cancelled the image capture            } else {                // Image capture failed, advise user            }        }        if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {            if (resultCode == RESULT_OK) {                // Video captured and saved to fileUri specified in the Intent                Toast.makeText(this, "Video saved to:\n" +                         data.getData(), Toast.LENGTH_LONG).show();            } else if (resultCode == RESULT_CANCELED) {                // User cancelled the video capture            } else {                // Video capture failed, advise user            }        }    }}

求各位大神给予帮助,帮忙看看那里有问题。



郁闷了,自己查了下资料原来是androidManifest.xml 要加个sdcard的读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


更多相关文章

  1. Android(安卓)SDCard操作(文件读写,容量计算)
  2. 【Android】向sdcard中写入文件
  3. android adb 读写模式 挂载文件系统
  4. Android读写文件
  5. Android读写文件
  6. Android内部存储和外部存储的获取方法
  7. Android(安卓)studio嵌入二维码扫描
  8. android程序执行adb shell命令
  9. Android(安卓)读写XML文件(使用pull解析)

随机推荐

  1. PHP:oop->抽象类/接口/后期静态绑定/单例
  2. 【PHP 面向对象】面向对象(OOP)编程知识
  3. 企业建站多端小程序之酱茄企业官网小程序
  4. 电信大宽带服务器300M谁家有?
  5. 基于云原生日志分类处理方案与落地实践
  6. Kubernetes节点之间的ping监控
  7. IIC实战---》BH1750FVI光照强度传感器
  8. C++基础学习---->变量与运算操作
  9. 扇贝 Service Mesh 发展历程
  10. C++基础学习---->指针基础笔记