HarmonyOS鸿蒙Next中【URI读取照片】Uri读取招聘经纬度是null,求助
HarmonyOS鸿蒙Next中【URI读取照片】Uri读取招聘经纬度是null,求助
如代码所示,方法形参是uri的照片id
,此方法中的经纬度是null。但是当相片放入app中的media时候可以读取出经纬度。请帮忙,万分感谢。
private void displayLocation(String chooseImgId) {
Uri uri = Uri.appendEncodedPathToUri(AVStorage.Images.Media.EXTERNAL_DATA_ABILITY_URI, chooseImgId);
ImageSource imageSource = null;
try {
//读取图片
FileDescriptor fd = helper.openFile(uri, "r");
ImageSource.SourceOptions srcOpts = new ImageSource.SourceOptions();
srcOpts.formatHint = "image/jpeg";
imageSource = ImageSource.create(fd, srcOpts);
//读取经纬度
String lattitude = imageSource.getImagePropertyString(PropertyKey.Exif.GPS_LATITUDE);
String lattitudeRef = imageSource.getImagePropertyString(PropertyKey.Exif.GPS_LATITUDE_REF);
HiLog.info(LABEL_LOG, "%{public}s", "imageExif GPS_LATITUDE : " + lattitude);
HiLog.info(LABEL_LOG, "%{public}s", "imageExif GPS_LATITUDE_REF : " + lattitudeRef);
String longitude = imageSource.getImagePropertyString(PropertyKey.Exif.GPS_LONGITUDE);
String longitudeRef = imageSource.getImagePropertyString(PropertyKey.Exif.GPS_LONGITUDE_REF);
HiLog.info(LABEL_LOG, "%{public}s", "imageExif GPS_LONGITUDE : " + longitude);
HiLog.info(LABEL_LOG, "%{public}s", "imageExif GPS_LONGITUDE_REF : " + longitudeRef);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (imageSource != null) {
imageSource.release();
}
}
}
更多关于HarmonyOS鸿蒙Next中【URI读取照片】Uri读取招聘经纬度是null,求助的实战教程也可以访问 https://www.itying.com/category-93-b0.html
欢迎开发小伙伴们进来帮帮楼主
更多关于HarmonyOS鸿蒙Next中【URI读取照片】Uri读取招聘经纬度是null,求助的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我加了权限还是获取不到呢.
添加权限:“ohos.permission.MEDIA_LOCATION”
感谢您的反馈,如您后期有疑问可以发帖,期待您更多的分享。
在HarmonyOS鸿蒙Next中,使用URI读取照片时,如果获取到的经纬度信息为null,可能是由于以下原因:
-
照片元数据缺失:照片文件本身可能未包含EXIF元数据,或者EXIF元数据中未记录经纬度信息。EXIF是嵌入在照片中的元数据,包含拍摄时间、设备信息、地理位置等。
-
权限问题:读取照片的EXIF元数据可能需要特定的权限。确保应用已获取了读取存储和访问位置信息的权限。
-
URI解析问题:URI可能未正确解析或指向的照片文件不包含EXIF数据。检查URI是否正确,并确保照片文件存在且可访问。
-
API使用问题:在鸿蒙系统中,读取EXIF数据可能需要使用特定的API。确保使用了正确的API来读取照片的EXIF信息。
-
照片来源问题:如果照片是从网络下载或通过其他方式获取的,可能在传输过程中丢失了EXIF数据。
要解决此问题,可以检查照片文件是否包含EXIF数据,确保应用具有必要的权限,并正确使用鸿蒙系统提供的API来读取EXIF信息。
在HarmonyOS鸿蒙Next中,如果通过URI读取照片时发现经纬度信息为null,可能是以下原因导致的:
- 照片元数据缺失:照片本身未包含经纬度信息。可以通过其他工具检查照片的EXIF数据。
- 权限问题:确保应用已获取读取存储和位置信息的权限。
- URI解析问题:检查URI是否正确解析,确保访问的是正确的照片文件。
- API使用问题:确认使用的API是否正确获取了EXIF数据,建议使用
ExifInterface
类读取元数据。
建议先检查照片的EXIF数据,确保其包含经纬度信息,再排查代码和权限问题。