</pre><strong>调用手机自带的照相机程序</strong><p></p><p><strong>(1)需要在Manifest.xml文件中,设置可读取SD卡的权限:</strong></p><p><pre name="code" class="html"> <!--添加SD卡可写权限 -->
<uses-permission android:name="android.permissio.WRITE_EXTERNAL_STORAGES"/>
(2)设置图片存储位置及对应Intent的RequestCode标识
//拍照照片存储位置
private File photoDir = new File(Environment.getExternalStorageDirectory()+"/DCIM/Camera");
private File photoFileName;
private String photoName;
//用来标识请求照相程序的Acitivity,作为RequestCode
private static final int requestCode_photoTaken = 1000;
<strong> </strong>
<strong>(3)判断SD卡状态</strong>
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {// 判断是否有SD卡
// 执行照相程序
} else
{
showToast("没有SD卡");
}
(4)调用系统自带照相机程序
photoDir.mkdir();//创建照片存储目录
photoFileName = new File(photoDir,getphotoFileName()); //用日期给照片命名
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photoFileName) ); //将照相后的文件存储到所对应的目录下
startActivityForResult(intent,requestCode_photoTaken);
(5)重写onActivityResult,对反馈回的数据进行处理
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data); //继承父类
//如果未成功返回
if(resultCode != RESULT_OK)
{
showToast("未成功返回数据!");
return;
}
else //若成功响应,并返回数据
{
switch(requestCode) //通过标识,找到对应的返回数据,并执行对应的程序
{
case requestCode_photoTaken:
// 执行相应处理程序
break;
}