このページでは

qt_add_harmonyos_permission

ターゲットの実行ファイルに HarmonyOS の権限を追加します。

このコマンドは、Qt6 パッケージのCore コンポーネントに定義されており、次のように読み込むことができます:

find_package(Qt6 REQUIRED COMPONENTS Core)

このコマンドは Qt 6.12 で導入されました。

注:この コマンドはテクノロジープレビュー段階にあり、将来のリリースで変更される可能性があります。

注:この コマンドは、HarmonyOSプラットフォームをターゲットにしている場合にのみ呼び出す必要があります。

概要

qt_add_harmonyos_permission(target
    NAME <permission-name>
    [REASON <reason>]
    [USED_SCENE_ABILITIES <ability> [<ability>...]]
    [USED_SCENE_WHEN inuse | always]
)

バージョン指定なしのコマンドが無効になっている場合は、代わりに `qt6_add_harmonyos_permission() ` を使用してください。このコマンドと同じ引数セットをサポートしています。

説明

このコマンドは、target 実行ファイルに HarmonyOS 権限を追加します。この権限は、HAP パッケージのビルド時に、生成されるmodule.json5 マニフェストのrequestPermissions 配列に書き込まれます。このコマンドを使用して、アプリケーションがリンクしている Qt モジュールによって提供されるデフォルトの権限に加えて、追加の権限を要求します。

利用可能な権限名とその要件の一覧については、HarmonyOS アプリケーションの権限に関するドキュメントを参照してください。

引数

NAME は権限識別子です(例:ohos.permission.CAMERA )。これは唯一の必須引数です。

REASON は、システムがuser_grant 権限の許可を求める際にユーザーに表示されるメッセージです。リテラル文字列、またはアプリケーションのリソースファイルからローカライズされた文字列に解決される$string:<name> リソース参照のいずれかを指定できます。REASON を指定すると、その権限に対してusedScene ブロックが出力されます。

USED_SCENE_ABILITIES は、その権限を使用するアビリティのリストです。usedScene ブロックが発行される際にこれが省略された場合、デフォルト値はQAbility となり、これはQtアプリケーションをホストする唯一のアビリティです。

USED_SCENE_WHEN この設定は、権限がアクセスされるタイミングを指定します。有効な値は、inuse (アプリケーションがフォアグラウンドにある間のみ権限が使用される)およびalways (バックグラウンドでも権限が使用される)です。usedScene ブロックが発行される際にこの設定が省略された場合、デフォルト値はinuse となります。

USED_SCENE_ABILITIES およびUSED_SCENE_WHEN キーワードは、生成されたmodule.json5 内の権限のusedScene オブジェクトのabilities およびwhen フィールドに直接対応します。

例

qt_add_harmonyos_permission(myapp
    NAME ohos.permission.CAMERA
    REASON "$string:camera_permission_reason"
    USED_SCENE_WHEN inuse
)
qt_add_harmonyos_permission(myapp
    NAME ohos.permission.INTERNET
)

「Qt for HarmonyOS CMake API」も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.