0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【HarmonyOS 5】鸿蒙应用隐私保护详解

HarmonyOS解决方案 ? 来源:HarmonyOS解决方案 ? 作者:HarmonyOS解决方案 ? 2025-07-11 18:30 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

HarmonyOS 5】鸿蒙应用隐私保护详解

##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财#

一、前言

在今天这个手机不离手的时代,我们每天用手机支付、聊天、记录生活,不知不觉中,大量个人信息都存储在了移动设备里。但你有没有想过,如果这些隐私数据泄露了会怎样?从接到诈骗电话,到遭遇身份盗用,后果可能不堪设想。好在,HarmonyOS早就为我们的隐私安全做好了全方位的防护。

想象一下,你的健康数据、聊天记录、甚至支付密码被陌生人随意查看,是不是细思极恐?隐私泄露不仅会侵犯个人权利,还可能带来财产损失。更重要的是,保护隐私是法律的硬性要求,也是企业对用户的责任。HarmonyOS深知这一点,从系统底层到应用开发,每一个环节都把隐私保护放在首位。

二、HarmonyOS隐私保护的六大黄金原则

HarmonyOS为应用开发者制定了一套严格的隐私保护规则,这些规则就像“安全指南”,保障每一款应用都能成为用户隐私的“守护者”:

  1. 透明公开
    应用要像“透明人”一样,清清楚楚告诉用户收集哪些数据、用来做什么,绝不搞“暗箱操作”。
  2. 够用就好
    只收集必要的数据,绝不“贪心”。比如天气应用知道你的城市就够了,没必要追踪你的精确位置。
  3. 用户做主
    所有数据处理都要经过用户同意,你有随时“喊停”的权利。
  4. 安全加码
    数据全程加密,无论是存储在手机里,还是传输到云端,都像被加上了“超级密码锁”。
  5. 本地优先
    数据尽量在手机本地处理,如果非要上传到云端,也必须遵循“最少够用”原则。
  6. 特殊关怀
    如果应用面向未成年人,必须严格遵守相关法律,收集数据前先过“家长这一关”。

三、开发者的“隐私保护工具箱”

为了落实这些原则,HarmonyOS给开发者准备了一系列实用的“安全工具”:

1.隐私声明弹窗:让用户心里有底

当你打开一款应用,突然弹出隐私声明弹窗,别嫌它“啰嗦”。这其实是应用在主动“自报家门”:“我会收集这些数据,用来做这些事,你同意了我才开始。”这样一来,用户能清楚知道自己的隐私会如何被使用,还能自主选择是否授权,真正掌握主动权。

对于开发者而言,重点是以下三点:
(1) 清楚说明会收集哪些数据
(2) 告知数据将如何使用
(3) 必须获得用户同意才能继续使用

代码示例
在“HMOS世界”应用中,通过以下代码实现隐私声明弹窗功能。在SafePage.ets文件中:

// 假设这里定义弹窗相关的组件和逻辑
@Entry
@Component
struct SafePage {
  build() {
    // 弹窗界面布局和交互逻辑
    if (!this.isAgreed) {
      Dialog()
      .title('隐私声明')
      .message('本应用会收集您的基础信息用于功能实现...')
      .button('同意', () = > {
          this.isAgreed = true;
          // 跳转到应用主界面
          router.pushUrl({
            url: '/pages/MainPage'
          });
        })
      .button('不同意', () = > {
          // 处理用户不同意的逻辑,比如退出应用
          exit();
        })
    } else {
      // 用户已同意,展示应用内容
      Column() {
        // 应用主界面组件
      }
    }
  }
}

2. 模糊定位:保护行踪不被“盯梢”

很多人不知道,手机定位其实分“精确”和“模糊”两种。对于不需要知道你具体位置的应用(比如音乐播放器),HarmonyOS推荐使用模糊定位,只告诉你在哪个城市或地区,既能满足应用功能需求,又不会暴露你的详细行踪,让隐私多一层保护。

位置权限申请方式对照表

target API level申请位置权限申请结果位置的精确度
小于9ohos.permission.LOCATION成功获取到精准位置,精准度在米级别
大于等于9ohos.permission.LOCATION失败无法获取位置
大于等于9ohos.permission.APPROXIMATELY_LOCATION成功获取到模糊位置,精确度为5公里
大于等于9同时申请ohos.permission.APPROXIMATELY_LOCATIONohos.permission.LOCATION成功获取到精准位置,精准度在米级别

代码示例
首先在module.json5配置文件中声明权限:

{
  "module": {
    // ...
    "requestPermissions": [
      {
        "name": "ohos.permission.APPROXIMATELY_LOCATION",
        "reason": "$string:location_reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      },
      // ...
    ],
  }
}

在代码中动态申请权限并获取位置信息:

import geoLocationManager from '@ohos.geoLocationManager';
import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import Logger from '@ohos.hilog';

let atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.APPROXIMATELY_LOCATION'])
 .then((data) = > {
    Logger.info(`request permissions result: ${JSON.stringify(data)}`);
    let requestInfo: geoLocationManager.LocationRequest = {
      'priority': geoLocationManager.LocationRequestPriority.FIRST_FIX,
     'scenario': geoLocationManager.LocationRequestScenario.UNSET,
      'timeInterval': 1,
      'distanceInterval': 0,
      'maxAccuracy': 0
    };

    geoLocationManager.getCurrentLocation(requestInfo).then((result) = > {
      Logger.info(`geoLocationManager current location: ${JSON.stringify(result)}`);
      // 处理位置信息
    }).catch((error: BusinessError) = > {
      Logger.error(`geoLocationManager promise, getCurrentLocation: error: ${JSON.stringify(error)}`);
    });
  });

3. Picker选择器:告别“数据大扫荡”

以前,应用一旦获取存储权限,就像拿到了“万能钥匙”,能随意查看手机里的所有文件。现在有了Picker选择器,用户可以像在超市挑商品一样,只允许应用访问特定的文件或照片,比如发朋友圈时,只让应用“看到”你想分享的那张图,其他隐私数据依然“躲”得好好的。

代码示例

import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { BusinessError } from '@kit.BasicServicesKit';

const photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
photoSelectOptions.maxSelectNumber = 5;
const photoViewPicker = new photoAccessHelper.PhotoViewPicker();
photoViewPicker.select(photoSelectOptions).then((photoSelectResult) = > {
  this.imageUri = photoSelectResult.photoUris[0];
  console.log(`PhotoViewPicker.select successfully, uris: ${JSON.stringify(photoSelectResult)}`);
}).catch((err: BusinessError) = > {
  console.error(`PhotoViewPicker.select failed with err: ${JSON.stringify(err)}`);
});

4. 动态权限申请:按需授权不越界

申请敏感权限(比如相机、通讯录)时,应用必须“说清楚、讲明白”:“我要相机权限,是为了实现扫码功能。”而且只能申请必需的权限,绝不“多要一分”,从源头杜绝权限滥用。

代码示例
以申请相机权限为例,在module.json5配置文件中声明权限:

{
  "module": {
    // ...
    "requestPermissions": [
      {
        "name": "ohos.permission.CAMERA",
        "reason": "$string:camera_reason",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      }
    ],
  }
}

string.json文件中定义权限用途说明:

{
  "string": [
    {
      "name": "camera_reason",
      "value": "扫描二维码功能需要使用相机权限来获取图片"
    }
  ]
}

在代码中动态申请权限:

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';
import Logger from '@ohos.hilog';

let atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.CAMERA'])
 .then((data) = > {
    let grantStatus: Array< number > = data.authResults;
    if (grantStatus.length > 0 && grantStatus[0] === 0) {
      // 用户授权,继续执行功能
      Logger.info('request permissions granted');
      // 执行扫码等相关逻辑
    } else {
      // 用户拒绝授权
      Logger.info('request permissions denied');
      // 提示用户或处理拒绝情况
    }
  });

总结:隐私保护的三大要点

1、透明可控:让用户清楚知道数据去向
2、最小够用:只收集必要的数据
3、全程加密:从存储到传输,全程保驾护航

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    60

    文章

    2643

    浏览量

    44237
  • HarmonyOS
    +关注

    关注

    80

    文章

    2128

    浏览量

    33399
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HarmonyOS隐私设计指南

    `应用开发者在产品设计阶段就需要考虑保护的用户隐私,提高应用的安全性。HarmonyOS 应用开发需要遵从其隐私保护规则,在应用上架应用市场
    发表于 09-24 17:42

    HarmonyOS鸿蒙原生应用开发设计- 隐私声明

    HarmonyOS设计文档中,为大家提供了独特的隐私声明,开发者可以根据需要直接引用。 开发者直接使用官方提供的隐私声明内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又
    发表于 10-31 14:16

    HarmonyOS 2在隐私安全保护上有什么新进步?

    一直以来,华为都致力于守护用户的隐私和安全,全新的HarmonyOS 2在隐私安全保护上又有什么新进步?往下,一起进入HarmonyOS安全
    的头像 发表于 06-26 11:46 ?2399次阅读

    华为开发者大会:HarmonyOS Connect生态设备安全与隐私保护

    华为开发者大会2021上,发布了HarmonyOS Connect生态设备安全与隐私保护指导书。
    的头像 发表于 10-22 16:51 ?2277次阅读
    华为开发者大会:<b class='flag-5'>HarmonyOS</b> Connect生态设备安全与<b class='flag-5'>隐私</b><b class='flag-5'>保护</b>

    HarmonyOS 5 makeObserved接口详解

    HarmonyOS 5】makeObserved接口详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 06-16 17:58 ?317次阅读

    HarmonyOS 5鸿蒙中进度条的使用详解

    HarmonyOS 5鸿蒙中进度条的使用详解 ##鸿蒙开发能力 ##HarmonyOS SD
    的头像 发表于 07-11 18:26 ?275次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】<b class='flag-5'>鸿蒙</b>中进度条的使用<b class='flag-5'>详解</b>

    HarmonyOS 5鸿蒙星闪NearLink详解

    HarmonyOS 5鸿蒙星闪NearLink详解 ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 07-11 18:24 ?406次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】<b class='flag-5'>鸿蒙</b>星闪NearLink<b class='flag-5'>详解</b>

    HarmonyOS 5鸿蒙mPaaS详解

    HarmonyOS 5鸿蒙mPaaS详解 ##鸿蒙开发能力 ##HarmonyOS SDK应
    的头像 发表于 07-11 18:23 ?320次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】<b class='flag-5'>鸿蒙</b>mPaaS<b class='flag-5'>详解</b>

    HarmonyOS 5】金融应用开发鸿蒙组件实践

    HarmonyOS 5】金融应用开发鸿蒙组件实践 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 07-11 18:20 ?341次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】金融应用开发<b class='flag-5'>鸿蒙</b>组件实践

    HarmonyOS 5鸿蒙中的UIAbility详解(三)

    HarmonyOS 5鸿蒙中的UIAbility详解(三) ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 06-14 22:32 ?103次阅读

    HarmonyOS 5鸿蒙中的UIAbility详解(二)

    HarmonyOS 5鸿蒙中的UIAbility详解(二) ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 07-11 18:17 ?328次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】<b class='flag-5'>鸿蒙</b>中的UIAbility<b class='flag-5'>详解</b>(二)

    HarmonyOS 5】桌面快捷方式功能实现详解

    HarmonyOS 5】桌面快捷方式功能实现详解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##
    的头像 发表于 06-21 16:42 ?327次阅读
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】桌面快捷方式功能实现<b class='flag-5'>详解</b>

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

    HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解 ##鸿蒙开发能力 ##Har
    的头像 发表于 07-07 11:57 ?181次阅读
    【 <b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b> 入门系列 】<b class='flag-5'>鸿蒙</b><b class='flag-5'>HarmonyOS</b>示例项目讲解

    鸿蒙中Stage模型与FA模型详解

    HarmonyOS 5鸿蒙中Stage模型与FA模型详解 ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 07-07 11:50 ?233次阅读

    鸿蒙应用px,vp,fp概念详解

    HarmonyOS 5鸿蒙应用px,vp,fp概念详解 ##鸿蒙开发能力 ##HarmonyOS
    的头像 发表于 07-07 11:48 ?252次阅读
    <b class='flag-5'>鸿蒙</b>应用px,vp,fp概念<b class='flag-5'>详解</b>