使用Intent 启动相机拍照
时间: 2023-10-06 20:13:04 浏览: 81
Android相机Camera基础知识
好的,您可以使用以下代码片段来启动相机拍照:
```java
// 创建启动相机的 Intent
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 确保设备有相机应用可用
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// 创建一个文件来保存拍照后的图片
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// 错误处理
}
// 继续只有在文件创建成功的情况下
if (photoFile != null) {
// 将文件作为额外的输出添加到 Intent 中
Uri photoURI = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
// 启动相机应用
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
```
在上面的代码中,我们创建了一个 `Intent` 对象 `takePictureIntent`,并将其设置为启动相机应用来拍摄照片。我们还通过调用 `resolveActivity()` 方法来确保设备上有相机应用可用。接下来,我们创建了一个文件来保存拍照后的图片,并通过调用 `createImageFile()` 方法来实现。在文件创建成功后,我们使用 `FileProvider` 将文件作为额外的输出添加到 `Intent` 中,并使用 `startActivityForResult()` 方法启动相机应用。最后,我们通过指定 `REQUEST_IMAGE_CAPTURE` 请求码来等待相机应用返回结果。
需要注意的是,我们需要在 AndroidManifest.xml 文件中注册一个 FileProvider,以便我们能够在应用之间安全地共享文件。同时,我们还需要在 onActivityResult() 方法中处理相机应用返回的结果。
阅读全文