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

6 回复

欢迎开发小伙伴们进来帮帮楼主

更多关于HarmonyOS鸿蒙Next中【URI读取照片】Uri读取招聘经纬度是null,求助的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我加了权限还是获取不到呢.

添加权限:“ohos.permission.MEDIA_LOCATION”

感谢您的反馈,如您后期有疑问可以发帖,期待您更多的分享。

在HarmonyOS鸿蒙Next中,使用URI读取照片时,如果获取到的经纬度信息为null,可能是由于以下原因:

  1. 照片元数据缺失:照片文件本身可能未包含EXIF元数据,或者EXIF元数据中未记录经纬度信息。EXIF是嵌入在照片中的元数据,包含拍摄时间、设备信息、地理位置等。

  2. 权限问题:读取照片的EXIF元数据可能需要特定的权限。确保应用已获取了读取存储和访问位置信息的权限。

  3. URI解析问题:URI可能未正确解析或指向的照片文件不包含EXIF数据。检查URI是否正确,并确保照片文件存在且可访问。

  4. API使用问题:在鸿蒙系统中,读取EXIF数据可能需要使用特定的API。确保使用了正确的API来读取照片的EXIF信息。

  5. 照片来源问题:如果照片是从网络下载或通过其他方式获取的,可能在传输过程中丢失了EXIF数据。

要解决此问题,可以检查照片文件是否包含EXIF数据,确保应用具有必要的权限,并正确使用鸿蒙系统提供的API来读取EXIF信息。

在HarmonyOS鸿蒙Next中,如果通过URI读取照片时发现经纬度信息为null,可能是以下原因导致的:

  1. 照片元数据缺失:照片本身未包含经纬度信息。可以通过其他工具检查照片的EXIF数据。
  2. 权限问题:确保应用已获取读取存储和位置信息的权限。
  3. URI解析问题:检查URI是否正确解析,确保访问的是正确的照片文件。
  4. API使用问题:确认使用的API是否正确获取了EXIF数据,建议使用ExifInterface类读取元数据。

建议先检查照片的EXIF数据,确保其包含经纬度信息,再排查代码和权限问题。

回到顶部