android+获取手机照片的拍照时间,Android拍照和获取相册图片
时间: 2023-06-20 20:10:13 浏览: 67
获取手机照片的拍照时间和获取相册图片的方法略有不同,我分别介绍一下。
1. 获取拍照时间
可以通过读取照片的 Exif 信息来获取拍照时间。具体步骤如下:
1.1 首先需要获取照片的路径或者 Uri。
1.2 利用 ExifInterface 类读取照片的 Exif 信息。
```java
ExifInterface exifInterface = new ExifInterface(photoPath);
```
1.3 获取拍摄时间信息。注意,由于不同手机厂商的 Exif 格式可能略有不同,因此需要根据具体情况来获取时间信息。以下是获取时间信息的一个示例代码:
```java
String time = exifInterface.getAttribute(ExifInterface.TAG_DATETIME);
if (time == null) {
time = exifInterface.getAttribute(ExifInterface.TAG_DATETIME_ORIGINAL);
}
if (time == null) {
time = exifInterface.getAttribute(ExifInterface.TAG_DATETIME_DIGITIZED);
}
```
2. 获取相册图片
可以通过调用系统的相册应用来选择图片,然后获取选中图片的 Uri。具体步骤如下:
2.1 创建 Intent 对象,指定 action 和 type。
```java
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
```
2.2 启动相册应用,等待用户选择图片。
```java
startActivityForResult(intent, REQUEST_CODE_SELECT_IMAGE);
```
2.3 在 onActivityResult 回调方法中处理选中图片的 Uri。
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_SELECT_IMAGE && resultCode == RESULT_OK) {
Uri uri = data.getData();
// TODO: 处理选中图片的 Uri
}
}
```
获取到 Uri 后,可以使用 ContentResolver 类的 query 方法来获取图片的其他信息,例如拍摄时间等。具体代码如下:
```java
String[] projection = {MediaStore.Images.ImageColumns.DATE_TAKEN};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
long time = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATE_TAKEN));
// TODO: 处理拍摄时间
}
```