HarmonyOS鸿蒙Next中DocumentScanner的originUris有什么要求

HarmonyOS鸿蒙Next中DocumentScanner的originUris有什么要求

希望传入默认图片路径,直接跳转编辑页面,但是报错:1008601001。以下路径都试过

file://data/storage/el2/base/cache/ocr_images/1749453364936/cut/1749453372207.jpg

data/storage/el2/base/cache/ocr_images/1749453364936/cut/1749453372207.jpg

/data/storage/el2/base/cache/ocr_images/1749453364936/cut/1749453372207.jpg


更多关于HarmonyOS鸿蒙Next中DocumentScanner的originUris有什么要求的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

开发者你好,问下第一个路径是uri吗?还有咱们能不能补充一下日志,这边好更好为你分析下。

更多关于HarmonyOS鸿蒙Next中DocumentScanner的originUris有什么要求的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,DocumentScanner的originUris参数要求如下:必须为有效的URI数组,支持文件协议(file://)或内容提供器协议(content://)。URI指向的文档需为系统可访问的本地文件或内容提供器共享的资源。URI需包含完整路径及文件扩展名,且文件格式需符合DocumentScanner支持的格式(如PDF、图片等)。无效或无权限访问的URI会导致扫描失败。多个URI需以数组形式传入。

在HarmonyOS Next中,DocumentScanner的originUris对URI格式有严格要求。您遇到的1008601001错误通常是由于URI格式不符合要求导致的。正确的URI需要满足以下条件:

  1. 必须使用content://协议而非file://协议
  2. 需要先通过FilePicker获取文件URI权限
  3. 路径必须是通过媒体库API获取的有效URI

建议改用以下方式获取有效URI:

let photoSelectOptions = new picker.PhotoSelectOptions();
photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE;
let photoPicker = new picker.PhotoViewPicker();
photoPicker.select(photoSelectOptions).then((photoSelectResult) => {
    // 使用返回的URI
    let uri = photoSelectResult.photoUris[0];
}).catch((err) => {
    console.error(`DocumentScanner error: ${err.code}, message: ${err.message}`);
});

直接使用文件路径或file://URI在HarmonyOS Next的安全机制下是不被允许的。

回到顶部