HarmonyOS/OpenHarmony (Stage モデル) カード開発アプリケーション コンテキスト コンテキスト利用シナリオ 1

1. アプリケーション ファイル パスを取得します。
基本クラス Context は、アプリケーション ファイル パスを取得する機能を提供します。ApplicationContext、AbilityStageContext、UIAbilityContext、および ExtensionContext はすべて、この機能を継承します。アプリケーション ファイル パスは、アプリケーション サンドボックス パスに属します。上記の種類の Context によって取得されるアプリケーション ファイルのパスは異なります。

ApplicationContext を通じてアプリケーション レベルのアプリケーション ファイル パスを取得します。このパスは、アプリケーション グローバル情報の推奨ストレージ パスです。これらのファイルは、アプリケーションがアンインストールされるときに削除されます。
 

#2023Blind Box+Code#HarmonyOS/OpenHarmony (ステージモデル) カード開発アプリケーションコンテキストコンテキスト使用シナリオ 1 - オープンソース基本ソフトウェアコミュニティ


AbilityStageContext、UIAbilityContext、ExtensionContext を通じて HAP レベルのアプリケーション ファイル パスを取得します。このパスは、HAP 関連情報の推奨ストレージ パスです。これらのファイルは、HAP のアンインストール後に削除されますが、アプリケーションのすべての HAP がアンインストールされない限り、アプリケーション レベルのパス内のファイルには影響しません。
 

#2023Blind Box+Code#HarmonyOS/OpenHarmony (ステージモデル) カード開発アプリケーションコンテキストコンテキスト使用シナリオ 1 - オープンソース基本ソフトウェアコミュニティ


サンプルコードは以下のとおりです。

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
    onCreate(want, launchParam) {
        let cacheDir = this.context.cacheDir;
        let tempDir = this.context.tempDir;
        let filesDir = this.context.filesDir;
        let databaseDir = this.context.databaseDir;
        let bundleCodeDir = this.context.bundleCodeDir;
        let distributedFilesDir = this.context.distributedFilesDir;
        let preferencesDir = this.context.preferencesDir;
        // ...
    }
}

2. 暗号化パーティションを取得および変更します
。前のシナリオでは、暗号化レベルの概念が導入されました。現在の暗号化パーティションは、Context のエリア属性の読み取りおよび書き込みによって取得および設定されます。次の 2 つの暗号化レベルがサポートされています: AreaMode。 EL1: デバイス
レベルの暗号化領域。デバイスの電源を入れた後にアクセスできるデータ領域。

AreaMode.EL2: ユーザーレベルの暗号化領域。デバイスの電源がオンになり、初めてパスワードが入力された後にのみアクセスできるデータ領域です。

import UIAbility from '@ohos.app.ability.UIAbility';

export default class EntryAbility extends UIAbility {
    onCreate(want, launchParam) {
        // 存储普通信息前,切换到EL1设备级加密
        if (this.context.area === 1) { // 获取area
            this.context.area = 0;     // 修改area
        }
        // 存储普通信息

        // 存储敏感信息前,切换到EL2用户级加密
        if (this.context.area === 0) { // 获取area
            this.context.area = 1;     // 修改area
        }
        // 存储敏感信息
    }
}

おすすめ

転載: blog.csdn.net/weixin_69135651/article/details/132496594