HarmonyOS鸿蒙Next中打开文件通过第三方应用

HarmonyOS鸿蒙Next中打开文件通过第三方应用

  • 声明:config.json中配置FileAbility类,指明ability类型为data, 权限配置 grantPermission : true。

  • 配置转换关系:在hap包内resources/rawfile/ 目录下新建fileability.json的配置文件,用于配置File到Uri转换关系,同时指明哪些文件目录可以用来分享。配置转换关系后,路径会转换为对应name。fileability.json的配置文件如下所示:

  • 沙盒文件获取:发送侧调用getUriViaFile()

{
  "paths": [
    {
      "tag": "fileability-external-path",
      "name": "external_storage_root",
      "path": "."
    },
    {
      "tag": "fileability-files-path",
      "name": "files-path",
      "path": "."
    },
    {
      "tag": "fileability-cache-path",
      "name": "external_file_path",
      "path": "."
    },
    {
      "tag": "fileability-external-cache-path",
      "name": "external_cache_path",
      "path": "."
    },
    {
      "tag": "fileability-root-path",
      "name": "root-path",
      "path": "."
    }
  ]
}
{
    try {
        //获取文件类型
        String type = getMIMEType(file);
        Intent intent = new Intent();
        intent.setType(type);
        Uri fileUri = FileAbility.getUriViaFile(mContext, "/ohos.data.file.FileAbility", file);
        Operation operation = new Intent.OperationBuilder()
                .withAction(IntentConstants.ACTION_VIEW_DATA)
                .withFlags(Intent.FLAG_ABILITY_NEW_MISSION)
                .withUri(fileUri).build();
        intent.setOperation(operation);
        mContext.startAbility(intent, 0);
    } catch (Exception e) {
        Log.e(TAG, "openFile: " + e.getMessage());
    }
}

更多关于HarmonyOS鸿蒙Next中打开文件通过第三方应用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,打开文件通过第三方应用主要依赖于系统的Intent机制。HarmonyOS提供了统一的文件访问接口,开发者可以通过调用ohos.app.Context类中的startAbility方法来启动第三方应用并传递文件URI。具体步骤如下:

  1. 获取文件URI:首先,通过ohos.file.fs模块获取文件的URI。例如,使用File类的getUri方法获取文件的URI。

  2. 创建Intent:使用ohos.aafwk.content.Intent类创建一个Intent对象,并设置其Actionohos.intent.action.VIEW,表示要查看文件。

  3. 设置文件URI:将获取到的文件URI通过Intent的setUri方法设置到Intent中。

  4. 启动第三方应用:调用ohos.app.ContextstartAbility方法,传入创建好的Intent对象,系统会根据文件类型自动匹配并启动相应的第三方应用。

例如,以下代码展示了如何通过第三方应用打开一个PDF文件:

import fileIO from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility';

let filePath = '/data/storage/el2/base/files/example.pdf';
let fileUri = fileIO.getUri(filePath);

let intent = {
    action: 'ohos.intent.action.VIEW',
    uri: fileUri
};

featureAbility.startAbility(intent)
    .then(() => {
        console.log('第三方应用启动成功');
    })
    .catch((err) => {
        console.error('启动第三方应用失败', err);
    });

通过这种方式,HarmonyOS鸿蒙Next可以方便地调用第三方应用打开指定类型的文件。

更多关于HarmonyOS鸿蒙Next中打开文件通过第三方应用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,打开文件通过第三方应用可以通过以下步骤实现:

  1. 获取文件URI:首先,通过系统API获取文件的URI。
  2. 创建Intent:使用Intent对象,设置ACTION_VIEW动作,并将文件URI作为数据。
  3. 设置MIME类型:根据文件类型设置相应的MIME类型,确保系统能正确识别并选择合适的应用。
  4. 启动应用:调用startActivity方法,系统会弹出应用选择器,用户可以选择合适的第三方应用打开文件。

示例代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri, "application/pdf");
startActivity(intent);

确保文件URI和MIME类型正确,以便系统能顺利调用第三方应用。

回到顶部