<uses-permission android:name="android.permission.CAMERA" />
2. 使用Intent 启动相机应用首先,需要创建一个 Intent 来启动相机应用以下是一个简单的代码示例:// 创建 IntentIntent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// 检查是否有相机应用可用if (takePictureIntent.resolveActivity(getPackageManager()) != null) { // 启动相机应用 startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);} else { // 处理没有相机应用可用的情况 Toast.makeText(this, "没有找到相机应用", Toast.LENGTH_SHORT).show();}
3. 处理图像数据:一旦用户拍完照片并点击确定,相机应用会将图像数据返回到当前 Activity这时候需要在 Activity 中实现 onActivityResult 方法来处理返回的数据@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { // 处理拍照成功的情况 Bundle extras = data.getExtras(); Bitmap imageBitmap = (Bitmap) extras.get("data"); // 在这里可以对图像数据进行处理,例如显示在 ImageView 中 imageView.setImageBitmap(imageBitmap); } else if (resultCode == RESULT_CANCELED) { // 处理用户取消拍照的情况 Toast.makeText(this, "取消拍照", Toast.LENGTH_SHORT).show(); }}
4. 注意事项:您的应用需要适当的权限,例如 android.permission.CAMERA,以确保您的应用能够调用相机应用处理 onActivityResult 方法时,请确保检查请求码和结果码,以便知道返回的数据是来自哪个操作,并且是否成功对于 Android 10 及以上版本,由于 Scoped Storage 的影响,相机应用可能不再将原始图像保存在您的应用私有目录因此,如果您需要保存原始图像,请查阅关于 Scoped Storage 的最新文档(图片来源网络,侵删)
0 评论