目录

应用安装后,文件预览可用的打开方式不正确

问题现象

应用安装后,文件预览时(比如:mp4视频文件),弹窗显示的可用打开方式包含该应用,但是并不能正常打开此文件。

背景知识

问题定位

  1. 在文件管理器中,选择一个mp4视频文件,在更多选项->其他应用打开,拉起可打开视频文件的应用,安装的应用在列表中,说明不是拉起方适配的问题,是应用skills能力配置的问题。
  2. 排查工程配置,在module.json5里配置了如下skills:
    "skills": [
      {
        "actions": [
          "ohos.want.action.viewData"
          // 必填,声明数据处理能力
        ],
        "uris": [
          {
            "scheme": "file",
            // 必填,声明协议类型为文件
            "type": "general.video",
            // 必填,表示支持打开的文件类型,支持MIME和UniformDataType
            "linkFeature": "FileOpen"
            // 必填且大小写敏感,表示此URI的功能为文件打开
          }
        ]
      }
    ]

    该配置表明此应用具有打开视频文件的能力,因此系统为视频文件选择打开方式时匹配上了该应用。

分析结论

因为应用错误的配置了skills参数,导致系统按照匹配规则为该类型文件的打开方式匹配到了应用。

修改建议

应用按照实际能提供的能力配置skills参数,如文本处理应用只配置打开文本类型文件的能力。

例如:

"skills": [
  {
    "actions": [
      "ohos.want.action.viewData"
      // 必填,声明数据处理能力
    ],
    "uris": [
      {
        "scheme": "file",
        // 必填,声明协议类型为文件
        "type": "general.plain-text",
        // 必填,表示支持打开的文件类型,支持MIME和UniformDataType
        "linkFeature": "FileOpen"
        // 必填且大小写敏感,表示此URI的功能为文件打开
      }
    ]
  }
]