鸿蒙 家长监控(孩子学习时长统计)

举报
鱼弦 发表于 2025/10/23 17:52:29 2025/10/23
【摘要】 一、引言在数字时代,电子设备已成为孩子学习的重要工具,但过度使用或沉迷娱乐应用可能导致学习效率下降、视力健康受损等问题。家长对孩子学习过程的​​精细化监控与管理​​需求日益迫切——不仅需要了解孩子每天花在“学习类应用”上的具体时长,还需区分“有效学习时间”(如专注学习)与“无效时间”(如频繁切换应用、分心行为),并通过数据指导孩子合理规划学习与休息。鸿蒙操作系统(HarmonyOS)凭借其​...


一、引言

在数字时代,电子设备已成为孩子学习的重要工具,但过度使用或沉迷娱乐应用可能导致学习效率下降、视力健康受损等问题。家长对孩子学习过程的​​精细化监控与管理​​需求日益迫切——不仅需要了解孩子每天花在“学习类应用”上的具体时长,还需区分“有效学习时间”(如专注学习)与“无效时间”(如频繁切换应用、分心行为),并通过数据指导孩子合理规划学习与休息。
鸿蒙操作系统(HarmonyOS)凭借其​​“一次开发,多端部署”​​的能力、​​分布式设备协同​​技术(如手机与平板联动)以及​​精细化应用使用统计​​能力(如后台记录应用使用时长、前台/后台状态切换),为构建“家长监控”系统提供了独特优势。通过鸿蒙原生API,家长端应用可实时统计孩子在指定设备(如平板)上的学习类应用使用时长,生成可视化报告,并通过阈值提醒(如“单日学习超时”)或行为分析(如“分心次数过多”)辅助家长引导孩子养成健康学习习惯。
本文将深入探讨鸿蒙家长监控系统的核心技术实现,涵盖学习时长统计逻辑、多设备数据同步与家长端可视化展示,结合ArkUI开发框架与鸿蒙分布式能力,通过代码示例与原理解析,帮助开发者打造科学、可靠的儿童学习管理工具。

二、技术背景

1. 家长监控的核心需求

  • ​精准时长统计​​:统计孩子在“学习类应用”(如教育APP、电子书阅读器)上的​​前台运行时长​​(实际专注学习时间),排除后台运行或切换至娱乐应用的时间。
  • ​多维度分析​​:区分“有效学习”(如连续专注30分钟以上)与“分心行为”(如10分钟内切换应用超过3次),帮助家长识别孩子的学习状态。
  • ​跨设备协同​​:孩子可能在手机、平板等多设备上学习,家长需通过统一平台(如家长的华为手机)查看所有设备的汇总数据。
  • ​隐私与安全​​:监控数据仅限家长可见,且需符合儿童隐私保护规范(如仅统计指定应用,不记录具体学习内容)。

2. 鸿蒙的核心能力支撑

  • ​应用使用统计(UsageStatsManager)​​:鸿蒙提供系统级API,可获取设备上所有应用的前台运行时长、后台运行时长及应用切换记录(如通过getForegroundAppUsage接口)。
  • ​分布式设备管理(DistributedDeviceManager)​​:支持家长设备(如手机)与孩子设备(如平板)的关联绑定,实现多设备学习数据的统一汇总。
  • ​后台服务(BackgroundService)​​:在孩子设备上运行常驻服务,实时记录应用使用状态(如前台/后台切换事件),并通过分布式通信将数据同步至家长端。
  • ​分布式数据同步(DistributedDataManagement)​​:将孩子的学习时长数据(如每日/每周统计)加密存储至共享存储空间,家长设备可随时拉取最新数据。
  • ​可视化展示(ArkUI)​​:通过声明式UI框架,将学习时长数据转化为直观的图表(如柱状图展示每日学习时长,饼图展示应用占比)。

3. 传统监控方案的局限性

  • ​数据不完整​​:仅依赖单一设备(如平板)的本地统计,无法跨设备汇总;或仅记录应用安装列表,未统计实际使用时长。
  • ​精度不足​​:无法区分“学习类应用”与其他应用(如游戏、视频),或未过滤后台运行时间(如应用在后台时仍被计入时长)。
  • ​家长交互弱​​:缺乏实时提醒(如“孩子今日学习超时”)或行为分析(如“分心次数过多”),难以有效引导孩子。

三、应用使用场景

1. 日常学习监督(家长手机+孩子平板)

​场景需求​​:孩子每天用平板学习30分钟(如英语APP),家长通过自己的华为手机查看平板上的学习类应用(如“XX英语”“XX数学”)的前台运行总时长,确认孩子是否完成目标,并分析分心行为(如频繁切换至游戏APP)。
​系统价值​​:家长端实时显示孩子的学习时长统计(如“今日学习:25分钟,主要应用:XX英语”),并通过图表对比昨日数据,辅助调整学习计划。

2. 多设备协同管理(手机+平板+智慧屏)

​场景需求​​:孩子在手机上使用电子书APP阅读,在平板上观看教学视频,在智慧屏上完成互动练习,家长需通过统一平台查看所有设备的学习类应用总时长。
​系统价值​​:分布式设备管理将多设备数据同步至家长手机,汇总各设备的学习时长(如“手机:10分钟,平板:20分钟,智慧屏:15分钟,总计:45分钟”),避免数据分散。

3. 周期性习惯培养(周报/月报分析)

​场景需求​​:家长希望了解孩子一周内的学习规律(如周末学习时长是否下降),并通过数据调整学习目标(如“本周平均每日学习20分钟,目标提升至30分钟”)。
​系统价值​​:系统生成周报(如“周一至周五日均学习25分钟,周末日均15分钟”)和月报(如“本月学习总时长:750分钟,主要应用:XX英语占比60%”),帮助家长制定长期计划。

4. 异常行为提醒(超时/分心警告)

​场景需求​​:家长设置规则(如“单日学习超时60分钟提醒”“10分钟内切换应用超过3次提醒”),当孩子触发规则时,家长手机实时收到通知(如“孩子今日学习已达60分钟,请注意休息”)。
​系统价值​​:通过阈值监控和行为分析,及时干预不良学习习惯,避免过度使用设备。

四、不同场景下详细代码实现

场景1:孩子设备上的学习时长统计服务(后台常驻+数据上报)

以下示例展示如何在孩子设备上通过​​后台服务(BackgroundService)​​实时监控应用使用状态(如前台运行时长),并记录“学习类应用”的使用数据,最终通过分布式能力同步至家长设备。

1. 项目初始化

通过DevEco Studio创建鸿蒙应用项目(选择“Service Ability”模板,用于后台服务),配置目标设备(如Tablet)。

2. 核心代码结构

entry/src/main/ets/
├── services/
│   ├── LearningMonitorService.ets // 后台监控服务(核心逻辑)
├── common/
│   └── model/
│       ├── LearningRecord.ets     // 学习记录模型
│       └── AppConfig.ets          // 配置模型(如学习类应用列表)
└── resources/
    └── base/
        └── element/
            └── string.json

3. 学习记录模型(common/model/LearningRecord.ets)

// 单次学习记录(应用+时长+时间戳)
export class LearningRecord {
  appId: string = '';           // 应用唯一标识(如"com.example.english")
  appName: string = '';         // 应用名称(如"XX英语")
  foregroundDuration: number = 0; // 前台运行时长(分钟)
  startTime: number = 0;        // 开始时间(时间戳)
  endTime: number = 0;          // 结束时间(时间戳)
  isLearningApp: boolean = false; // 是否属于学习类应用
}

// 配置模型(家长预设的学习类应用列表)
export class AppConfig {
  static LEARNING_APPS: string[] = [ // 需监控的学习类应用包名
    'com.example.english',      // 英语学习APP
    'com.example.math',         // 数学学习APP
    'com.example.reading'       // 电子书阅读APP
  ];
}

4. 后台监控服务(services/LearningMonitorService.ets)

import { LearningRecord } from '../common/model/LearningRecord';
import { AppConfig } from '../common/model/AppConfig';
import distributedData from '@ohos.data.distributedData';

// 后台服务:实时监控应用使用状态并记录学习时长
@Entry
@Component
struct LearningMonitorService {
  private learningRecords: LearningRecord[] = []; // 本地学习记录
  private currentApp: LearningRecord | null = null; // 当前正在运行的应用
  private distributedKv: distributedData.DistributedKVManager | null = null;
  private kvStore: distributedData.KVStore | null = null;

  aboutToAppear() {
    this.initDistributedSync(); // 初始化分布式数据同步
    this.startMonitoring();     // 开始监控应用使用状态
  }

  // 初始化分布式KV存储(用于同步数据至家长设备)
  async initDistributedSync() {
    try {
      this.distributedKv = distributedData.getKVManager({
        bundleName: 'com.example.parentmonitor', // 当前应用包名(孩子设备)
        userId: distributedData.UserId.CURRENT_USER
      });

      this.kvStore = await this.distributedKv.getKVStore({
        storeId: 'learning_records_store', // 存储唯一标识
        options: { encrypt: true }         // 加密存储学习数据
      });
    } catch (error) {
      console.error('分布式同步初始化失败:', error);
    }
  }

  // 开始监控应用使用状态(核心逻辑)
  startMonitoring() {
    // 监听应用前台/后台切换事件(需鸿蒙权限:ohos.permission.GET_RUNNING_INFO)
    // 注:实际项目中需通过鸿蒙的UsageStatsManager或类似API实现
    // 此处简化为模拟逻辑(每10秒检查一次当前前台应用)
    setInterval(() => {
      this.checkForegroundApp();
    }, 10000); // 实际建议使用系统级监听(如Activity生命周期回调)
  }

  // 检查当前前台应用并更新记录
  private checkForegroundApp() {
    // 模拟获取当前前台应用信息(实际需调用鸿蒙API,如getForegroundApp())
    const currentForegroundApp = this.simulateGetForegroundApp(); // { appId: 'com.example.english', appName: 'XX英语', isRunning: true }

    if (currentForegroundApp.isRunning) {
      // 当前有前台应用运行
      if (!this.currentApp || this.currentApp.appId !== currentForegroundApp.appId) {
        // 切换到新应用:结束上一个应用的记录(如果有)
        if (this.currentApp) {
          this.currentApp.endTime = Date.now();
          this.currentApp.foregroundDuration = (this.currentApp.endTime - this.currentApp.startTime) / (1000 * 60); // 转换为分钟
          this.learningRecords.push(this.currentApp);
        }

        // 开始记录新应用
        const isLearning = AppConfig.LEARNING_APPS.includes(currentForegroundApp.appId);
        this.currentApp = {
          appId: currentForegroundApp.appId,
          appName: currentForegroundApp.appName,
          foregroundDuration: 0,
          startTime: Date.now(),
          endTime: 0,
          isLearningApp: isLearning
        };
      } else {
        // 同一应用持续运行:无需操作(时长会在切换时计算)
      }
    } else {
      // 无前台应用:结束当前记录(如果有)
      if (this.currentApp) {
        this.currentApp.endTime = Date.now();
        this.currentApp.foregroundDuration = (this.currentApp.endTime - this.currentApp.startTime) / (1000 * 60);
        this.learningRecords.push(this.currentApp);
        this.currentApp = null;
      }
    }

    // 定期同步数据至分布式存储(如每分钟同步一次)
    if (Date.now() % 60000 < 10000) { // 简化:每分钟同步
      this.syncDataToParent();
    }
  }

  // 模拟获取当前前台应用(实际需替换为鸿蒙系统API)
  private simulateGetForegroundApp(): { appId: string; appName: string; isRunning: boolean } {
    // 假设当前前台应用为学习类APP(模拟数据)
    const mockApps = [
      { appId: 'com.example.english', appName: 'XX英语', isRunning: true }, // 学习类
      { appId: 'com.example.game', appName: 'XX游戏', isRunning: false },  // 非学习类
    ];
    return mockApps[0]; // 简化为始终返回学习类APP(实际需动态获取)
  }

  // 同步学习记录至分布式存储(家长设备可拉取)
  async syncDataToParent() {
    if (!this.kvStore) return;
    try {
      // 过滤仅学习类应用的记录(家长更关心这些)
      const learningRecordsFiltered = this.learningRecords.filter(record => record.isLearningApp);
      await this.kvStore.put('daily_learning_records', JSON.stringify(learningRecordsFiltered));
      await this.kvStore.flush();
      console.log('学习记录已同步至分布式存储');
    } catch (error) {
      console.error('数据同步失败:', error);
    }
  }

  aboutToDisappear() {
    // 服务停止时保存未完成的记录
    if (this.currentApp) {
      this.currentApp.endTime = Date.now();
      this.currentApp.foregroundDuration = (this.currentApp.endTime - this.currentApp.startTime) / (1000 * 60);
      this.learningRecords.push(this.currentApp);
    }
    this.syncDataToParent();
  }
}
​注意​​:上述代码中的simulateGetForegroundApp()为模拟逻辑,实际需调用鸿蒙的系统API(如@ohos.app.ability.UsageStatsManager)获取真实的前台应用信息(包括包名、运行状态)。鸿蒙当前版本可能需申请特定权限(如ohos.permission.GET_RUNNING_INFO)并使用后台服务监听应用生命周期变化。

场景2:家长设备上的学习时长统计展示(数据拉取与可视化)

家长通过自己的华为手机查看孩子设备上报的学习记录,通过​​分布式数据管理(DistributedDataManagement)​​拉取孩子的学习数据,并通过ArkUI展示可视化图表(如每日学习时长柱状图)。

1. 家长端核心代码(pages/ParentMonitorPage.ets)

import distributedData from '@ohos.data.distributedData';
import { LearningRecord } from '../common/model/LearningRecord';

@Entry
@Component
struct ParentMonitorPage {
  @State childLearningRecords: LearningRecord[] = []; // 孩子的学习记录
  private distributedKv: distributedData.DistributedKVManager | null = null;
  private kvStore: distributedData.KVStore | null = null;

  aboutToAppear() {
    this.initDistributedSync(); // 初始化分布式数据拉取
  }

  // 初始化分布式KV存储(连接孩子设备的共享数据)
  async initDistributedSync() {
    try {
      this.distributedKv = distributedData.getKVManager({
        bundleName: 'com.example.parentmonitor', // 家长应用包名
        userId: distributedData.UserId.CURRENT_USER
      });

      this.kvStore = await this.distributedKv.getKVStore({
        storeId: 'learning_records_store', // 与孩子设备相同的storeId
        options: { encrypt: true }
      });

      // 拉取孩子的学习记录(从分布式存储)
      const recordsData = await this.kvStore.get('daily_learning_records', '[]');
      this.childLearningRecords = JSON.parse(recordsData) as LearningRecord[];
    } catch (error) {
      console.error('拉取学习记录失败:', error);
    }
  }

  // 计算总学习时长(分钟)
  getTotalDuration(): number {
    return this.childLearningRecords.reduce((sum, record) => sum + record.foregroundDuration, 0);
  }

  build() {
    Column() {
      Text('孩子学习时长统计')
        .fontSize(24)
        .fontWeight(FontWeight.Bold)
        .margin({ bottom: 20 });

      // 总时长展示
      Text(`今日总学习时长:${this.getTotalDuration().toFixed(1)} 分钟`)
        .fontSize(18)
        .fontColor('#333')
        .margin({ bottom: 20 });

      // 学习记录列表(简化展示)
      List() {
        ForEach(this.childLearningRecords, (record: LearningRecord) => {
          ListItem() {
            Row() {
              Text(record.appName)
                .fontSize(16)
                .flexGrow(1);
              Text(`${record.foregroundDuration.toFixed(1)}分钟`)
                .fontSize(16)
                .fontColor('#007DFF');
            }
            .width('100%')
            .padding(10)
            .backgroundColor('#f5f5f5')
            .borderRadius(8);
          }
        });
      }
      .layoutWeight(1);
    }
    .width('100%')
    .height('100%')
    .padding(16);
  }
}

五、原理解释

1. 学习时长统计的整体流程

+---------------------+       +---------------------+       +---------------------+
|  孩子设备运行学习  | ----> |  后台服务监控       | ----> |  记录前台应用时长   |
|  APP(如英语)     |       |  (LearningMonitorService)|       |  (区分学习/非学习类)|
+---------------------+       +---------------------+       +---------------------+
          |                           |                           |
          |  应用切换/退出     |                           |
          |------------------------>|                           |
          |  更新当前应用记录  |                           |
          |  (结束旧应用,开始新|                           |
          |   应用或结束当前) |                           |
          |                           |  定期同步至分布式存储 |
          |                           |  (DistributedKVManager)|
          |                           |------------------------>|
          |                           |  家长设备拉取数据     |
          |                           |  (ParentMonitorPage)  |
          |                           |------------------------>|
          |                           |  展示可视化统计     |
          v                           v                           v
+---------------------+       +---------------------+       +---------------------+
|  鸿蒙系统级API      |       |  分布式数据同步     |       |  家长手机可视化     |
|  (获取前台应用)     |       |  (跨设备数据共享)   |       |  (柱状图/列表)      |
+---------------------+       +---------------------+       +---------------------+

2. 核心机制解析

  • ​后台监控服务​​:孩子设备上的常驻服务(LearningMonitorService)通过定时检查(或系统级监听)获取当前前台运行的应用信息,判断是否为家长预设的“学习类应用”(通过包名匹配AppConfig.LEARNING_APPS)。
  • ​时长计算逻辑​​:当应用切换时(如从“XX英语”切换到“XX游戏”),服务记录前一个应用的前台运行时长(endTime - startTime,转换为分钟),并标记是否为学习类应用。
  • ​分布式同步​​:学习记录通过鸿蒙的分布式KV存储(DistributedKVManager)加密保存,并关联唯一的storeId。家长设备通过相同的storeId拉取孩子的学习数据,实现跨设备共享。
  • ​家长端展示​​:家长应用(ParentMonitorPage)从分布式存储获取孩子的学习记录,计算总时长并展示列表(可扩展为图表,如使用鸿蒙的@ohos.agp.components.chart库绘制柱状图)。

3. 关键配置项

  • ​学习类应用列表​​:家长需在AppConfig.LEARNING_APPS中预设需要监控的应用包名(如教育APP的官方包名),确保仅统计有效学习时间。
  • ​分布式权限​​:孩子设备和家长设备需登录同一华为账号,且家长应用需在module.json5中申请ohos.permission.DISTRIBUTED_DATASYNC权限。
  • ​后台服务保活​​:孩子设备的后台服务需通过鸿蒙的后台任务管理机制(如ForegroundService)保持运行,避免被系统回收(实际开发中需处理后台限制)。

六、核心特性

特性
说明
优势
​精准时长统计​
仅统计学习类应用的前台运行时长(排除后台/非学习应用),数据真实反映有效学习时间
避免娱乐应用干扰,精准衡量学习投入
​多设备协同​
孩子设备(如平板)与家长设备(如手机)通过分布式存储同步数据,家长查看所有设备的汇总统计
无需手动汇总,统一管理多终端学习行为
​可视化展示​
家长端以列表/图表形式展示每日学习时长、应用占比,直观易懂
辅助家长快速了解孩子的学习规律
​隐私保护​
仅统计家长预设的学习类应用,不记录具体学习内容,数据加密存储
符合儿童隐私规范,保障数据安全
​低功耗运行​
后台服务通过定时检查(非实时监听)降低系统资源占用
减少对孩子设备性能的影响
​灵活配置​
家长可通过修改AppConfig.LEARNING_APPS自定义需要监控的应用列表
适配不同孩子的学习工具(如更换教育APP)

七、原理流程图及原理解释

原理流程图(家长监控全流程)

+---------------------+       +---------------------+       +---------------------+
|  孩子使用学习APP   | ----> |  后台服务检测       | ----> |  记录前台运行时长   |
|  (如XX英语)        |       |  (LearningMonitorService)|       |  (学习类应用标记)   |
+---------------------+       +---------------------+       +---------------------+
          |                           |                           |
          |  应用切换/退出     |                           |
          |------------------------>|                           |
          |  更新记录(结束/  |                           |
          |   开始新应用)   |                           |
          |                           |  定期同步至分布式存储 |
          |                           |  (DistributedKVManager)|
          |                           |------------------------>|
          |                           |  家长设备拉取数据     |
          |                           |  (ParentMonitorPage)  |
          |                           |------------------------>|
          |                           |  展示总时长与应用列表 |
          v                           v                           v
+---------------------+       +---------------------+       +---------------------+
|  鸿蒙系统API       |       |  分布式数据同步     |       |  家长手机可视化     |
|  (获取前台应用)     |       |  (跨设备共享)       |       |  (柱状图/列表)      |
+---------------------+       +---------------------+       +---------------------+

原理解释

  1. ​孩子设备监控​​:当孩子打开学习类APP(如“XX英语”)时,后台服务检测到该应用进入前台运行,记录开始时间并标记为“学习类应用”;当应用切换至非学习类(如游戏)或退出时,服务计算该学习应用的前台运行时长(分钟),并保存记录。
  2. ​分布式同步​​:所有学习记录通过鸿蒙的分布式KV存储(DistributedKVManager)加密保存,关联唯一的storeId。家长设备(如华为手机)通过相同的storeId拉取孩子的学习数据,无需手动传输。
  3. ​家长端展示​​:家长打开监控页面(ParentMonitorPage),从分布式存储获取孩子的学习记录,计算总学习时长(如“今日25分钟”),并以列表形式展示各学习类应用的具体时长(如“XX英语:20分钟,XX数学:5分钟”),辅助家长了解孩子的学习分布。

八、环境准备

1. 开发环境要求

  • ​操作系统​​:Windows 10/11、macOS 10.15+或Linux(推荐Windows 11或macOS Monterey)。
  • ​开发工具​​:DevEco Studio(鸿蒙官方IDE,版本3.1 Release及以上,需配置JDK 11和Gradle 7.3)。
  • ​SDK​​:HarmonyOS SDK(通过DevEco Studio自动下载,选择API Version 9或更高)。
  • ​真机/模拟器​​:华为真机(孩子设备与家长设备均需开启开发者模式)或鸿蒙模拟器(通过DevEco Studio创建,支持Tablet和Phone设备类型)。

2. 项目创建

  1. ​孩子端项目​​:创建“Service Ability”模板项目(用于后台监控服务),包名如com.example.childmonitor
  2. ​家长端项目​​:创建“Empty Ability”模板项目(用于数据展示),包名如com.example.parentmonitor

3. 权限配置(config.json)

  • ​孩子端​​:在entry/src/main/module.json5中申请系统级权限(如ohos.permission.GET_RUNNING_INFO,实际需根据鸿蒙版本调整),用于获取前台应用信息。
  • ​家长端​​:在module.json5中申请ohos.permission.DISTRIBUTED_DATASYNC权限,用于拉取分布式存储的学习数据。

九、实际详细应用代码示例实现

完整代码结构

孩子端项目(childmonitor)/
├── services/
│   └── LearningMonitorService.ets // 后台监控服务
├── common/
│   └── model/
│       ├── LearningRecord.ets     // 学习记录模型
│       └── AppConfig.ets          // 学习类应用配置
└── resources/
    └── base/
        └── element/
            └── string.json

家长端项目(parentmonitor)/
├── pages/
│   └── ParentMonitorPage.ets      // 家长监控展示页面
├── common/
│   └── model/
│       └── LearningRecord.ets     // 学习记录模型(与孩子端一致)
└── resources/
    └── base/
        └── element/
            └── string.json

运行步骤

  1. ​孩子端部署​​:将孩子端项目代码部署到华为平板(或手机),启动后台监控服务(通过DevEco Studio运行Service Ability),确保服务常驻并记录学习数据。
  2. ​家长端部署​​:将家长端项目代码部署到华为手机,运行应用并拉取分布式存储的学习记录(通过ParentMonitorPage展示)。
  3. ​验证功能​​:在孩子设备上打开学习类APP(如预设的“XX英语”),观察家长端是否实时显示对应的学习时长。

十、运行结果

正常情况(功能生效)

  • ​孩子设备​​:后台服务持续运行,准确记录学习类应用(如“XX英语”)的前台运行时长(如“25分钟”),并同步至分布式存储。
  • ​家长设备​​:家长打开监控页面,看到孩子的总学习时长(如“今日25分钟”)及具体应用时长列表(如“XX英语:25分钟”),数据与孩子设备实际使用一致。
  • ​多设备同步​​:若孩子同时在手机和平板上学习,家长端汇总所有设备的学习记录(如“手机:10分钟
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。