时间:2024-11-27 来源:网络 人气:
Android调用系统相机详解
在Android应用开发中,调用系统相机是一个常见的需求。无论是拍照、录像还是选择图片,系统相机都是实现这些功能的基础。本文将详细介绍如何在Android应用中调用系统相机,包括拍照、录像和选择图片等功能。
在开始调用系统相机之前,我们需要做一些准备工作:
从Android 6.0(API级别23)开始,Android引入了运行时权限的概念。因此,我们需要在运行时动态申请相机权限。
```java
String[] permissions = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE
if (ContextCompat.checkSelfPermission(thisActivity, permissions[0]) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(thisActivity, permissions, MY_PERMISSIONS_REQUEST_CAMERA);
在调用相机之前,我们需要检查设备上是否安装了相机应用。
```java
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
// 相机可用
} else {
// 相机不可用,提示用户
要打开系统相机,我们可以使用隐式Intent。
```java
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
在`onActivityResult`回调中,我们可以获取拍照结果。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get(