Files
xianyan/docs/toolsapi/agreements/privacy-policy.html
Developer 0da8906f5d chore: 完成v6.5.58版本迭代更新
本次更新包含多项功能优化与bug修复:
1. 新增flutter_keyboard_visibility依赖替代MediaQuery轮询获取键盘状态
2. 添加远程功能标志API支持与FeatureFlag服务
3. 重构壁纸背景渲染组件,统一全局壁纸展示逻辑
4. 延迟初始化壁纸源健康检测至用户同意协议后
5. 修复预测返回/长按预览锁定问题并移除相关配置项
6. 优化日志输出控制,release模式仅保留错误日志
7. 新增进度模块多语言翻译与相关UI字段
8. 优化稍后读功能,取消时同步删除聊天消息
9. 更新权限说明文档,移除冗余的存储写入权限配置
10. 重构部分UI组件减少参数传递,优化性能
2026-05-30 05:30:49 +08:00

1048 lines
44 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>隐私政策 - 闲言APP</title>
<style>
:root {
--primary: #6C5CE7;
--primary-light: #A29BFE;
--primary-dark: #5A4BD1;
--bg: #F2F2F7;
--bg-card: #FFFFFF;
--text: #1C1C1E;
--text-secondary: #8E8E93;
--text-tertiary: #AEAEB2;
--border: #E5E5EA;
--highlight-bg: rgba(108, 92, 231, 0.08);
--shadow-sm: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 4px 12px rgba(0,0,0,0.08);
--radius-sm: 8px;
--radius-md: 12px;
--radius-lg: 16px;
--radius-xl: 20px;
--font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: var(--font-family);
background: var(--bg);
color: var(--text);
line-height: 1.8;
-webkit-font-smoothing: antialiased;
}
.lang-switch {
position: fixed;
top: 16px;
right: 16px;
z-index: 100;
display: flex;
background: rgba(255,255,255,0.85);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 20px;
padding: 3px;
box-shadow: 0 2px 12px rgba(0,0,0,0.1);
border: 0.5px solid rgba(108, 92, 231, 0.15);
}
.lang-btn {
padding: 6px 14px;
border: none;
background: transparent;
color: var(--text-secondary);
font-size: 13px;
font-weight: 500;
cursor: pointer;
border-radius: 17px;
transition: all 0.25s ease;
font-family: var(--font-family);
}
.lang-btn.active {
background: var(--primary);
color: #FFF;
box-shadow: 0 2px 8px rgba(108, 92, 231, 0.3);
}
.lang-btn:hover:not(.active) {
background: rgba(108, 92, 231, 0.08);
color: var(--primary);
}
.header {
background: linear-gradient(135deg, #6C5CE7 0%, #5A4BD1 50%, #4A3DB5 100%);
padding: 48px 20px 44px;
text-align: center;
position: relative;
overflow: hidden;
}
.header::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.1) 0%, transparent 50%);
pointer-events: none;
}
.header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 32px;
background: var(--bg);
border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}
.header-icon { font-size: 40px; margin-bottom: 10px; display: block; }
.header h1 { color: #FFF; font-size: 24px; font-weight: 700; letter-spacing: -0.3px; margin-bottom: 4px; }
.header p { color: rgba(255,255,255,0.75); font-size: 14px; }
.container { max-width: 800px; margin: 0 auto; padding: 20px 16px 40px; }
.content-card {
background: var(--bg-card);
border-radius: var(--radius-lg);
padding: 28px 24px;
margin-bottom: 20px;
box-shadow: var(--shadow-sm);
}
h1 {
font-size: 22px;
font-weight: 700;
color: var(--text);
margin: 28px 0 12px;
}
h2 {
font-size: 20px;
font-weight: 700;
color: var(--text);
margin: 32px 0 16px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary);
display: inline-block;
}
h3 {
font-size: 17px;
font-weight: 600;
color: var(--text);
margin: 24px 0 12px;
}
p {
font-size: 15px;
color: var(--text);
margin-bottom: 12px;
line-height: 1.8;
}
p.note {
background: rgba(108, 92, 231, 0.06);
border-left: 3px solid var(--primary);
padding: 12px 16px;
border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
margin: 12px 0;
}
.highlight {
color: var(--primary);
font-weight: 600;
background: var(--highlight-bg);
padding: 1px 6px;
border-radius: 4px;
}
.copyright-cert {
margin: 20px 0;
text-align: center;
padding: 20px;
background: rgba(108, 92, 231, 0.04);
border-radius: var(--radius-md);
border: 1px solid rgba(108, 92, 231, 0.12);
}
.cert-image {
max-width: 100%;
max-height: 500px;
border-radius: var(--radius-sm);
box-shadow: var(--shadow-md);
}
.cert-caption {
margin-top: 12px;
font-size: 14px;
color: var(--text-secondary);
font-weight: 500;
}
ul {
list-style: none;
padding: 0;
margin: 0 0 16px;
}
li {
font-size: 15px;
color: var(--text);
padding: 6px 0 6px 20px;
position: relative;
line-height: 1.7;
}
li::before {
content: '\2022';
color: var(--primary);
font-weight: 700;
position: absolute;
left: 4px;
top: 6px;
}
table {
width: 100%;
border-collapse: collapse;
margin: 16px 0;
font-size: 14px;
}
th {
background: var(--primary);
color: #FFF;
padding: 10px 12px;
text-align: left;
font-weight: 600;
font-size: 13px;
}
td {
padding: 10px 12px;
border-bottom: 0.5px solid var(--border);
line-height: 1.6;
}
tr:hover td {
background: rgba(108, 92, 231, 0.04);
}
.back-link {
display: inline-flex;
align-items: center;
gap: 6px;
color: var(--primary);
text-decoration: none;
font-size: 15px;
font-weight: 500;
padding: 12px 0;
transition: opacity 0.2s;
}
.back-link:hover { opacity: 0.7; }
.footer {
text-align: center;
padding: 24px 20px 40px;
color: var(--text-secondary);
font-size: 13px;
line-height: 1.8;
border-top: 0.5px solid var(--border);
margin-top: 20px;
}
.footer .company { font-weight: 500; color: var(--text); margin-bottom: 4px; }
@media (max-width: 640px) {
.lang-switch { top: 10px; right: 10px; }
.lang-btn { padding: 5px 10px; font-size: 12px; }
.header { padding: 40px 16px 36px; }
.header h1 { font-size: 20px; }
.container { padding: 16px 12px 32px; }
.content-card { padding: 20px 16px; }
h2 { font-size: 18px; }
h3 { font-size: 16px; }
p, li { font-size: 14px; }
table { font-size: 12px; }
th, td { padding: 8px 6px; }
}
</style>
</head>
<body>
<div class="lang-switch">
<button class="lang-btn active" onclick="switchLang('zh')" id="btn-zh">中文</button>
<button class="lang-btn" onclick="switchLang('en')" id="btn-en">EN</button>
</div>
<div class="header">
<span class="header-icon">🔒</span>
<h1 id="header-title">隐私政策</h1>
<p id="header-subtitle">我们如何收集、使用、存储和保护您的个人信息</p>
</div>
<div class="container">
<div class="content-card">
<div id="content-zh" class="lang-content">
<p><strong>闲言APP</strong> 隐私政策</p>
<p>版本号V6.6</p>
<p>更新日期2026年5月30日</p>
<p>生效日期2026年5月31日</p>
<p><strong>弥勒市朋普镇微风暴网络科技工作室</strong>(以下简称"我们")深知个人信息对您的重要性,我们将按照法律法规的规定,保护您的个人信息及隐私安全。我们制定本隐私政策以帮助您了解我们如何收集、使用、存储和保护您的个人信息。本政策适用于<strong>闲言APP</strong>提供的所有服务。</p>
<h2>零、定义</h2>
<p>本隐私政策中使用的术语定义如下:</p>
<ul>
<li>**个人信息**:以电子或者其他方式记录的与已识别或者可识别的自然人有关的各种信息,不包括匿名化处理后的信息</li>
<li>**敏感个人信息**:一旦泄露或者非法使用,容易导致自然人的人格尊严受到侵害或者人身、财产安全受到危害的个人信息,包括生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹等信息,以及不满十四周岁未成年人的个人信息</li>
<li>**个人信息处理者**:在个人信息处理活动中自主决定处理目的、处理方式的组织或个人,在本政策中指我们</li>
<li>**匿名化**:个人信息经过处理无法识别特定自然人且不能复原的过程</li>
<li>**去标识化**:个人信息经过处理使其在不借助额外信息的情况下无法识别特定自然人的过程</li>
<li>**我们**:指弥勒市朋普镇微风暴网络科技工作室</li>
<li>**您/用户**指使用闲言APP服务的自然人</li>
<li>**第三方SDK**:指由第三方提供的、集成在我们应用中用于实现特定功能的软件开发工具包</li>
<li>**工作日**:指中华人民共和国法定工作日(不含法定节假日及调休日)</li>
</ul>
<h2>一、我们收集的信息</h2>
<p>我们仅收集为您提供核心服务所<span class="highlight">必需</span>的信息。拒绝提供非必要信息不会影响您使用应用的基础功能。</p>
<h3>1.1 自动收集的信息</h3>
<ul>
<li>设备信息:设备型号、操作系统版本、设备标识符、屏幕分辨率(用于兼容性优化和崩溃分析)</li>
<li>应用信息:应用版本号、构建号(用于版本管理和功能适配)</li>
<li>日志信息:崩溃日志、性能指标(用于提升应用稳定性)</li>
<li>设备指纹信息设备唯一标识符device_id、User-Agent用于设备识别和安全验证</li>
<li>IP地址信息您的IP地址及IP归属地用于安全验证、异常登录检测和城市级位置服务</li>
<li>互动行为信息:您的浏览记录、搜索关键词、点赞、收藏、分享、评论等互动行为,用于个性化推荐和服务优化</li>
<li>阅读行为信息:阅读时长、阅读进度,用于阅读统计和个性化推荐</li>
</ul>
<h3>1.2 您主动提供的信息</h3>
<ul>
<li>账号信息:注册时提供的手机号/邮箱、昵称、头像</li>
<li>个人偏好:主题设置、字体大小、阅读偏好等个性化配置</li>
<li>用户内容:您发布的笔记、文章、评论等</li>
<li>安全信息:密保问题和答案(加密存储),用于账号安全验证</li>
</ul>
<h3>1.3 我们不会收集的信息</h3>
<ul>
<li>通讯录、短信、通话记录</li>
<li><span class="highlight">精确地理位置</span>(仅使用城市级别用于天气服务)</li>
<li><span class="highlight">生物识别信息</span>(指纹、面容等)</li>
<li>其他与核心服务无关的<span class="highlight">敏感信息</span></li>
</ul>
<h2>二、我们如何使用信息</h2>
<p>我们收集的信息仅用于以下目的:</p>
<h3>2.1 核心服务</h3>
<ul>
<li>提供句子阅读、卡片创作、诗词推荐等核心功能</li>
<li>个性化内容推荐和展示</li>
<li>账号注册、登录与安全验证</li>
</ul>
<h3>2.2 功能优化</h3>
<ul>
<li>优化应用性能和稳定性</li>
<li>兼容性适配与Bug修复</li>
<li>新功能开发与测试</li>
</ul>
<h3>2.3 安全保障</h3>
<ul>
<li>账号安全验证与异常登录检测</li>
<li>防止欺诈和违规行为</li>
</ul>
<p>我们<span class="highlight">不会</span>将您的个人信息用于未在本政策中说明的用途。</p>
<h2>二点五、业务功能与个人信息映射表</h2>
<p>根据《App违法违规收集使用个人信息行为认定方法》要求以下逐项说明各业务功能所收集的个人信息</p>
<table><thead><tr>
<th>业务功能</th>
<th>收集的个人信息类型</th>
<th>是否必要</th>
<th>拒绝提供的影响</th>
</tr></thead><tbody>
<tr>
<td>句子阅读与发现</td>
<td>设备信息、应用信息</td>
<td></td>
<td>无法使用阅读功能</td>
</tr>
<tr>
<td>卡片创作</td>
<td>相册/相机权限(可选)</td>
<td></td>
<td>无法使用图片相关功能,可使用纯文字创作</td>
</tr>
<tr>
<td>诗词推荐</td>
<td>设备信息</td>
<td></td>
<td>无法使用诗词功能</td>
</tr>
<tr>
<td>AI智能助手</td>
<td>对话内容、设备信息</td>
<td></td>
<td>无法使用AI对话功能</td>
</tr>
<tr>
<td>文件传输助手</td>
<td>蓝牙/位置/附近设备权限(可选)</td>
<td></td>
<td>无法使用文件传输功能</td>
</tr>
<tr>
<td>笔记与文章</td>
<td>用户内容、设备信息</td>
<td></td>
<td>无法使用笔记功能</td>
</tr>
<tr>
<td>天气信息</td>
<td>粗略位置(可选)</td>
<td></td>
<td>需手动选择城市</td>
</tr>
<tr>
<td>每日签到与积分</td>
<td>账号信息</td>
<td></td>
<td>无法参与签到活动</td>
</tr>
<tr>
<td>推送通知</td>
<td>通知权限(可选)、设备标识符</td>
<td></td>
<td>无法接收推送消息</td>
</tr>
<tr>
<td>云端数据同步</td>
<td>账号信息、用户内容</td>
<td></td>
<td>无法使用同步功能</td>
</tr>
<tr>
<td>语音朗读</td>
<td>设备信息</td>
<td></td>
<td>无法使用朗读功能</td>
</tr>
<tr>
<td>二维码扫描</td>
<td>相机权限(可选)</td>
<td></td>
<td>无法使用扫码功能</td>
</tr>
<tr>
<td>OCR文字识别</td>
<td>相机权限、图片内容(可选)</td>
<td></td>
<td>无法使用OCR功能</td>
</tr>
<tr>
<td>会员增值服务</td>
<td>账号信息</td>
<td></td>
<td>无法使用会员功能</td>
</tr>
</tbody></table>
<p class="note">说明:</p>
<ul>
<li>标注为"必要"的信息是提供该功能所必需的,拒绝提供将导致该功能无法使用</li>
<li>标注为"可选"的信息或权限,拒绝提供仅影响相关子功能,不影响其他功能正常使用</li>
<li>您可随时在系统设置中撤回已授予的可选权限</li>
</ul>
<h2>三、我们如何存储信息</h2>
<h3>3.1 存储方式</h3>
<ul>
<li>本地存储:个人偏好设置存储在应用沙盒的 SharedPreferences 和 Hive 数据库中</li>
<li>缓存数据:图片缓存、内容缓存存储在应用临时目录,可随时清理</li>
<li>结构化数据:收藏、笔记、阅读历史等存储在本地 SQLite 数据库</li>
<li>服务端数据账号信息、用户资料、设备信息、互动记录、搜索历史、用户偏好画像等存储在云服务器MySQL数据库中</li>
<li>云端暂存:加密文件通过云端暂存服务在设备间传输,采用端到端加密</li>
</ul>
<h3>3.2 存储地域</h3>
<p>您的数据存储在<span class="highlight">中华人民共和国境内</span>的服务器上。当前我们<span class="highlight">不会</span>将您的个人信息传输至中华人民共和国境外。如未来因业务需要确需跨境传输,我们将按照法律法规要求进行<span class="highlight">安全评估</span>并获得您的<span class="highlight">单独同意</span>,并确保境外接收方的数据保护能力达到法律法规要求的标准。</p>
<h3>3.3 存储期限</h3>
<p>我们仅在实现本政策所述目的所必需的期限内保留您的个人信息:</p>
<table><thead><tr>
<th>信息类型</th>
<th>存储期限</th>
<th>说明</th>
</tr></thead><tbody>
<tr>
<td>账号信息</td>
<td>账号存续期间 + 注销后30日</td>
<td>注销后删除或匿名化处理</td>
</tr>
<tr>
<td>用户内容(笔记、文章等)</td>
<td>账号存续期间</td>
<td>注销后删除</td>
</tr>
<tr>
<td>收藏与偏好设置</td>
<td>账号存续期间</td>
<td>注销后删除</td>
</tr>
<tr>
<td>崩溃日志与性能数据</td>
<td>6个月</td>
<td>超期自动删除</td>
</tr>
<tr>
<td>缓存数据</td>
<td>随应用卸载删除</td>
<td>可手动清除</td>
</tr>
<tr>
<td>本地数据库SQLite</td>
<td>随应用卸载删除</td>
<td>可手动导出备份</td>
</tr>
<tr>
<td>推送令牌</td>
<td>账号存续期间</td>
<td>注销或关闭推送时删除</td>
</tr>
<tr>
<td>设备信息与IP地址</td>
<td>账号存续期间</td>
<td>注销后删除</td>
</tr>
<tr>
<td>互动行为记录</td>
<td>账号存续期间</td>
<td>注销后删除IP数据6个月后匿名化</td>
</tr>
<tr>
<td>搜索历史</td>
<td>账号存续期间</td>
<td>注销后删除</td>
</tr>
<tr>
<td>用户偏好画像</td>
<td>账号存续期间</td>
<td>注销后删除</td>
</tr>
</tbody></table>
<p>法律法规要求保留的日志信息,保留期限不超过<span class="highlight">6个月</span>。超出上述期限后,我们将删除或匿名化处理您的个人信息。</p>
<h3>3.4 安全措施</h3>
<p>我们采用行业标准的安全措施保护您的数据,包括但不限于:</p>
<ul>
<li>数据传输加密TLS 1.2+</li>
<li>本地敏感数据加密存储</li>
<li>访问权限控制与审计</li>
<li>定期安全评估与漏洞修复</li>
</ul>
<h2>四、我们如何共享信息</h2>
<p>我们承诺:</p>
<h3>4.1 我们<span class="highlight">不会出售</span>您的个人信息</h3>
<h3>4.2 我们<span class="highlight">不会向第三方共享</span>您的个人身份信息,以下情形除外:</h3>
<ul>
<li>获得您的<span class="highlight">明确同意</span></li>
<li>根据<span class="highlight">法律法规要求</span>或政府主管部门的<span class="highlight">强制性要求</span></li>
<li>与关联方共享:仅为实现服务功能所必需</li>
<li>与授权合作伙伴共享:仅为实现服务功能所必需,且受严格保密义务约束</li>
</ul>
<h3>4.3 我们<span class="highlight">不会</span>在未经您同意的情况下将数据用于广告推送</h3>
<h3>4.4 如我们委托第三方处理您的个人信息,我们将与其签署<span class="highlight">数据处理协议</span>,确保其按照我们的要求和相关法律法规处理个人信息</h3>
<h3>4.5 如发生合并、收购、资产转让等情形,我们将要求新的持有您个人信息的主体继续受本隐私政策的约束</h3>
<h2>五、您的权利</h2>
<p>根据《中华人民共和国个人信息保护法》等相关法律法规,您享有以下权利:</p>
<h3>5.1 <span class="highlight">访问权</span>:随时查看您的个人数据</h3>
<h3>5.2 <span class="highlight">更正权</span>:修改不准确的个人信息</h3>
<h3>5.3 <span class="highlight">删除权</span>:要求删除您的个人数据</h3>
<h3>5.4 <span class="highlight">导出权</span>:以通用格式导出您的数据</h3>
<h3>5.5 <span class="highlight">撤回权</span>:随时撤回已授予的权限</h3>
<h3>5.6 <span class="highlight">注销权</span>:申请注销您的账号</h3>
<p>您可以通过应用内的"数据导出""账号注销"等功能行使上述权利,也可通过本政策列明的联系方式联系我们。</p>
<h2>六、Cookie 及同类技术</h2>
<p>本应用不使用传统的网页 Cookie 技术。我们使用本地存储SharedPreferences 和 SQLite来保存您的偏好设置和使用数据这些数据完全存储在您的设备上不会传输到服务器用于追踪目的。</p>
<h2>七、第三方SDK</h2>
<p>我们目前接入的第三方SDK如下。我们将严格审查第三方SDK的数据收集行为确保其符合本隐私政策的要求</p>
<table><thead><tr>
<th>SDK名称</th>
<th>提供者</th>
<th>收集信息类型</th>
<th>使用目的</th>
<th>隐私政策链接</th>
</tr></thead><tbody>
<tr>
<td>Flutter SDK</td>
<td>Google LLC</td>
<td>不额外收集个人信息</td>
<td>跨平台应用渲染引擎</td>
<td>https://flutter.dev/privacy</td>
</tr>
<tr>
<td>Supabase Flutter SDK</td>
<td>Supabase Inc.</td>
<td>账号信息、用户内容、设备标识符</td>
<td>用户认证、数据存储与同步</td>
<td>https://supabase.com/privacy</td>
</tr>
<tr>
<td>WebRTC</td>
<td>Google LLC / 开源社区</td>
<td>不额外收集个人信息</td>
<td>局域网文件传输</td>
<td>https://webrtc.org/privacy</td>
</tr>
</tbody></table>
<p class="note">说明:</p>
<ul>
<li>Flutter SDK为应用开发框架不独立收集用户个人信息</li>
<li>Supabase Flutter SDK用于用户认证和数据云端同步其收集的信息类型和目的如上表所述</li>
<li>我们未接入推送服务SDK、统计分析SDK、广告SDK等其他类型SDK</li>
<li>如后续接入新的第三方SDK我们将及时更新本章节并通过应用内公告等方式告知您</li>
</ul>
<h2>七点五、自动化决策</h2>
<h3>7.5.1 自动化决策的使用</h3>
<p>我们可能使用自动化决策机制(包括但不限于自动化推荐算法、用户画像等)为您提供个性化内容推荐和服务优化。我们承诺:</p>
<ul>
<li>自动化决策仅用于改善您的使用体验</li>
<li>我们<span class="highlight">不会</span>仅通过自动化决策方式作出对您权益产生重大影响的决定</li>
<li>如自动化决策对您产生重大影响,您有权要求我们予以说明,并有权拒绝仅通过自动化决策方式作出的决定</li>
</ul>
<h3>7.5.2 用户权利</h3>
<ul>
<li>您有权了解自动化决策的逻辑和可能产生的影响</li>
<li>您有权拒绝我们仅通过自动化决策方式作出的决定</li>
<li>您有权要求我们对自动化决策的结果进行人工复核</li>
</ul>
<h3>7.5.3 保障措施</h3>
<ul>
<li>我们将定期评估自动化决策系统的合理性和公平性</li>
<li>我们将确保自动化决策不会产生歧视性结果</li>
<li>我们将建立人工干预机制,保障您的合法权益</li>
</ul>
<h2>八、未成年人保护</h2>
<p>我们非常重视未成年人的隐私保护:</p>
<ul>
<li><span class="highlight">14周岁以下</span>未成年人不得注册和使用**闲言APP**账号</li>
<li>如发现误收集14岁以下未成年人信息<span class="highlight">及时删除</span>相关信息</li>
<li>建议监护人在未成年人使用本应用时进行指导和监督</li>
<li>详细的儿童隐私保护措施请参阅《儿童隐私政策》</li>
</ul>
<h3>8.1 年龄验证机制</h3>
<p>为防止14周岁以下未成年人注册使用我们采取以下措施</p>
<ul>
<li>注册时要求用户确认已年满14周岁</li>
<li>如后续发现用户未满14周岁我们将立即注销其账号并删除相关信息</li>
<li>我们不会要求未成年人提供身份证件进行年龄验证,以避免收集额外的敏感信息</li>
</ul>
<h2>八点五、个人信息安全事件处置</h2>
<h3>8.5.1 安全事件定义</h3>
<p>个人信息安全事件是指因我们或第三方的原因导致个人信息泄露、篡改、丢失等可能危害您合法权益的事件。</p>
<h3>8.5.2 应急响应机制</h3>
<p>如发生个人信息安全事件,我们将:</p>
<ul>
<li>立即启动<span class="highlight">应急响应机制</span>,采取补救措施</li>
<li>在事件发生后<span class="highlight">72小时</span>内向主管部门报告</li>
<li>及时通过应用内通知、邮件、短信等方式告知受影响的用户,告知内容包括:事件类型、涉及的信息类型、可能造成的危害、我们已采取的补救措施、用户可采取的减轻危害的措施等</li>
</ul>
<h3>8.5.3 通知例外</h3>
<p>如满足以下条件之一,我们可能无法及时通知您:</p>
<ul>
<li>采取有效措施能够避免对您造成危害的</li>
<li>主管部门认为通知可能影响调查或危害扩大的</li>
<li>法律法规另有规定的</li>
</ul>
<h3>8.5.4 事后改进</h3>
<p>安全事件处置完毕后,我们将:</p>
<ul>
<li>对事件进行全面调查和评估</li>
<li>完善安全措施,防止类似事件再次发生</li>
<li>向主管部门提交事件处置报告</li>
</ul>
<h2>九、隐私政策的更新</h2>
<p>我们可能会不时更新本隐私政策:</p>
<ul>
<li>重大变更将通过应用内通知告知您</li>
<li>更新后的政策将在应用内公示</li>
<li>对于重大变更,我们将以弹窗方式提示您,您需<span class="highlight">主动确认同意</span>后方可继续使用</li>
<li>您可以随时查看最新版本的隐私政策</li>
<li>如您不同意更新后的政策,有权停止使用本应用并要求删除个人信息</li>
</ul>
<h2>九点五、个人信息保护影响评估</h2>
<h3>9.5.1 评估范围</h3>
<p>在以下情形中,我们将依法进行<span class="highlight">个人信息保护影响评估</span></p>
<ul>
<li>处理敏感个人信息</li>
<li>利用个人信息进行自动化决策</li>
<li>委托处理个人信息、向其他个人信息处理者提供个人信息或公开个人信息</li>
<li>向境外提供个人信息</li>
<li>其他对个人权益有重大影响的个人信息处理活动</li>
</ul>
<h3>9.5.2 评估内容</h3>
<p>个人信息保护影响评估将包括以下内容:</p>
<ul>
<li>个人信息的处理目的、处理方式等是否合法、正当、必要</li>
<li>对个人权益的影响及安全风险</li>
<li>所采取的保护措施是否合法、有效并与风险程度相适应</li>
</ul>
<h3>9.5.3 评估结果</h3>
<ul>
<li>评估结果将作为我们决策是否开展相关个人信息处理活动的依据</li>
<li>如评估结果显示处理活动可能对您的权益产生高风险,我们将仅在采取额外保护措施后方可进行</li>
<li>评估记录将至少保留<span class="highlight">3年</span></li>
</ul>
<h2>十、联系我们</h2>
<p>如果您对本隐私政策有任何疑问或建议,请通过以下方式联系我们:</p>
<ul>
<li>邮箱2821981550@qq.com</li>
<li>应用内反馈:我的 → 关于 → 用户反馈</li>
<li>通信地址云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</li>
<li>ICP备案号滇ICP备2022000863号-18A</li>
</ul>
<p>我们将在<span class="highlight">15个工作日</span>内回复您的隐私相关请求。</p>
<p>个人信息保护负责人李先生邮箱gg@0gg.cc</p>
<h2>十一、国际数据保护</h2>
<p>如您位于中华人民共和国境外,我们还将遵守适用的当地数据保护法律:</p>
<h3>11.1 欧盟通用数据保护条例GDPR</h3>
<p>如您位于欧洲经济区EEA您享有以下额外权利</p>
<ul>
<li><span class="highlight">合法处理依据</span>:我们依据合法利益、合同履行或您的同意等合法依据处理您的个人信息</li>
<li><span class="highlight">欧盟代表</span>:我们已指定欧盟代表,联系方式可通过本政策列明的邮箱获取</li>
<li><span class="highlight">数据可携带权</span>:您有权以结构化、通用和机器可读的格式获取您的个人数据,并有权将数据传输给其他控制者</li>
<li><span class="highlight">限制处理权</span>:在特定情况下,您有权要求我们限制对您个人信息的处理</li>
<li><span class="highlight">反对权</span>:您有权随时反对基于合法利益对您个人信息的处理</li>
</ul>
<h3>11.2 加州消费者隐私法CCPA</h3>
<p>如您为加州居民,您享有以下权利:</p>
<ul>
<li><span class="highlight">知情权</span>:您有权了解我们收集了哪些个人信息及其用途</li>
<li><span class="highlight">删除权</span>:您有权要求我们删除您的个人信息</li>
<li><span class="highlight">选择退出权</span>:我们<span class="highlight">不出售</span>您的个人信息,因此您无需行使选择退出权</li>
<li><span class="highlight">不受歧视权</span>:行使隐私权利不会导致您受到歧视性对待</li>
</ul>
<h3>11.3 美国儿童在线隐私保护法COPPA</h3>
<ul>
<li>我们<span class="highlight">不针对</span>13岁以下儿童设计或运营服务</li>
<li>如我们知悉收集了13岁以下儿童的个人信息将立即删除</li>
<li>如您是13岁以下儿童的监护人且认为我们收集了该儿童的信息请联系我们</li>
</ul>
<p>本协议中任何条款被认定为无效或不可执行的,不影响其他条款的效力。</p>
</div>
<div id="content-en" class="lang-content" style="display:none;">
<p><strong>Xianyan APP</strong> Privacy Policy</p>
<p>Version: V6.6</p>
<p>Updated: May 30, 2026</p>
<p>Effective: May 31, 2026</p>
<p>Zero. Definitions</p>
<ul>
<li>**Personal Information**: Information that can identify a natural person, including but not limited to name, date of birth, ID number, biometric information, address, phone number, email, etc.</li>
<li>**Sensitive Personal Information**: Personal information that, once leaked or illegally used, may harm personal dignity or personal/property safety, including biometric information, religious beliefs, financial information, etc.</li>
<li>**Personal Information Controller**: The organization that determines the purposes and methods of processing personal information — **Mile City Pengpu Town Weifengbao Network Technology Studio**</li>
<li>**Personal Information Processor**: The organization that processes personal information on behalf of the controller</li>
<li>**Deletion**: Removal of personal information from the system so that it is no longer accessible</li>
<li>**Anonymization**: Processing of personal information so that it cannot identify a specific individual and cannot be restored</li>
<li>**Consent**: Explicit authorization given by the user after fully understanding the purposes, methods, and scope of personal information processing</li>
</ul>
<h2>I. How We Collect Your Personal Information</h2>
<p>We collect your personal information through the following methods:</p>
<h3>1.1 Information You Provide Actively</h3>
<ul>
<li>Account registration: phone number/email, nickname, password</li>
<li>Profile information: avatar, personal signature</li>
<li>Content you publish: sentences, notes, articles, comments</li>
<li>Feedback and suggestions: content you submit through the feedback feature</li>
<li>Security information: security questions and answers (encrypted storage), used for account security verification</li>
</ul>
<h3>1.2 Information Collected Automatically During Service Use</h3>
<ul>
<li>Device information: device model, operating system version, device identifier (IDFA/Android ID), screen resolution</li>
<li>Log information: access time, pages visited, click events, crash logs</li>
<li>Network information: network type (WiFi/4G/5G), carrier information</li>
<li>Device fingerprint information: device unique identifier (device_id), User-Agent, used for device identification and security verification</li>
<li>IP address information: your IP address and IP geolocation, used for security verification, abnormal login detection, and city-level location services</li>
<li>Interaction behavior information: your browsing history, search keywords, likes, favorites, shares, comments, and other interaction behaviors, used for personalized recommendations and service optimization</li>
<li>Reading behavior information: reading duration, reading progress, used for reading statistics and personalized recommendations</li>
</ul>
<h3>1.3 Information from Third-Party Services</h3>
<ul>
<li>We currently do not integrate any third-party SDKs</li>
<li>If third-party services are integrated in the future, we will update this policy and obtain your separate consent</li>
</ul>
<h2>II. How We Use Your Personal Information</h2>
<h3>2.1 Purposes of Use</h3>
<ul>
<li>Provide core features: sentence browsing, card creation, collection management</li>
<li>Account management: registration, login, security verification</li>
<li>Content recommendation: recommend relevant content based on your preferences</li>
<li>Service optimization: improve product performance and user experience</li>
<li>Security protection: prevent fraud and illegal activities</li>
</ul>
<h3>2.2 Business Functions — Personal Information Mapping Table</h3>
<table><thead><tr>
<th>Business Function</th>
<th>Personal Information Collected</th>
<th>Necessity</th>
</tr></thead><tbody>
<tr>
<td>Account Registration</td>
<td>Phone/Email, Nickname, Password</td>
<td>Required</td>
</tr>
<tr>
<td>Content Browsing</td>
<td>Device Info, Log Info</td>
<td>Required</td>
</tr>
<tr>
<td>Collection Management</td>
<td>User ID, Content ID</td>
<td>Required</td>
</tr>
<tr>
<td>Card Creation</td>
<td>User ID, Device Info</td>
<td>Required</td>
</tr>
<tr>
<td>Content Publishing</td>
<td>User ID, Published Content</td>
<td>Required</td>
</tr>
<tr>
<td>Data Sync</td>
<td>User ID, Sync Data</td>
<td>Required</td>
</tr>
<tr>
<td>Push Notifications</td>
<td>Device Token, Notification Preferences</td>
<td>Optional</td>
</tr>
<tr>
<td>Feedback</td>
<td>User ID, Feedback Content</td>
<td>Optional</td>
</tr>
<tr>
<td>Crash Reporting</td>
<td>Device Info, Crash Logs</td>
<td>Required</td>
</tr>
</tbody></table>
<h3>2.3 We will not use your personal information for purposes other than those stated above without your additional consent</h3>
<h2>III. How We Store Your Personal Information</h2>
<h3>3.1 Storage Location</h3>
<ul>
<li>Your personal information is stored on servers located within the People's Republic of China</li>
<li>We currently do not engage in cross-border data transfer</li>
<li>Local storage: personal preferences are stored in the app sandbox's SharedPreferences and Hive database</li>
<li>Cached data: image cache and content cache are stored in the app's temporary directory and can be cleared at any time</li>
<li>Structured data: favorites, notes, reading history, etc. are stored in the local SQLite database</li>
<li>Server data: account information, user profiles, device information, interaction records, search history, user preference profiles, etc. are stored in the cloud server MySQL database</li>
<li>Cloud staging: encrypted files are transferred between devices through the cloud staging service, using end-to-end encryption</li>
</ul>
<h3>3.2 Storage Period</h3>
<table><thead><tr>
<th>Information Type</th>
<th>Storage Period</th>
<th>Notes</th>
</tr></thead><tbody>
<tr>
<td>Account Information</td>
<td>Duration of account existence</td>
<td>Deleted within 30 days after account deletion</td>
</tr>
<tr>
<td>User Content</td>
<td>Duration of account existence</td>
<td>User can delete at any time</td>
</tr>
<tr>
<td>Device Information</td>
<td>90 days</td>
<td>Automatically deleted after expiration</td>
</tr>
<tr>
<td>Log Information</td>
<td>90 days</td>
<td>Automatically deleted after expiration</td>
</tr>
<tr>
<td>Crash Logs</td>
<td>30 days</td>
<td>Automatically deleted after expiration</td>
</tr>
<tr>
<td>Feedback Records</td>
<td>Duration of account existence</td>
<td>Deleted together with account</td>
</tr>
<tr>
<td>Sync Data</td>
<td>Duration of account existence</td>
<td>User can delete at any time</td>
</tr>
<tr>
<td>Device Information &amp; IP Address</td>
<td>Duration of account existence</td>
<td>Deleted after account deletion</td>
</tr>
<tr>
<td>Interaction Behavior Records</td>
<td>Duration of account existence</td>
<td>Deleted after account deletion, IP data anonymized after 6 months</td>
</tr>
<tr>
<td>Search History</td>
<td>Duration of account existence</td>
<td>Deleted after account deletion</td>
</tr>
<tr>
<td>User Preference Profile</td>
<td>Duration of account existence</td>
<td>Deleted after account deletion</td>
</tr>
</tbody></table>
<h3>3.3 Security Measures</h3>
<ul>
<li>Data transmission uses SSL/TLS encryption</li>
<li>Sensitive data is stored encrypted</li>
<li>Strict access control and permission management</li>
<li>Regular security assessments and vulnerability remediation</li>
</ul>
<h3>3.4 Cross-Border Data Transfer</h3>
<ul>
<li>We currently do not transfer your personal information overseas</li>
<li>If cross-border transfer is necessary in the future, we will:</li>
<li>Conduct a security assessment in accordance with the law</li>
<li>Obtain your separate consent</li>
<li>Ensure the receiving country/region provides adequate protection</li>
<li>Sign a cross-border data transfer agreement</li>
</ul>
<h2>IV. How We Share Your Personal Information</h2>
<h3>4.1 We will not share your personal information with third parties except in the following circumstances:</h3>
<ul>
<li>With your explicit consent</li>
<li>As required by laws and regulations</li>
<li>To protect our legitimate rights and interests</li>
<li>For public health or public safety purposes</li>
</ul>
<h3>4.2 Third-Party SDK Information</h3>
<table><thead><tr>
<th>SDK Name</th>
<th>Provider</th>
<th>Information Collected</th>
<th>Purpose</th>
<th>Privacy Policy</th>
</tr></thead><tbody>
<tr>
<td>Flutter SDK</td>
<td>Google</td>
<td>Device Info, App Info</td>
<td>App framework</td>
<td>https://flutter.dev/privacy</td>
</tr>
<tr>
<td>Supabase Flutter SDK</td>
<td>Supabase</td>
<td>User ID, Data</td>
<td>Backend services</td>
<td>https://supabase.com/privacy</td>
</tr>
<tr>
<td>WebRTC</td>
<td>Google LLC / Open Source Community</td>
<td>No additional personal information collected</td>
<td>LAN file transfer</td>
<td>https://webrtc.org/privacy</td>
</tr>
</tbody></table>
<h2>V. Your Rights</h2>
<h3>5.1 You have the right to:</h3>
<ul>
<li>Access your personal information</li>
<li>Correct inaccurate information</li>
<li>Delete your personal information</li>
<li>Withdraw your consent</li>
<li>Obtain a copy of your data</li>
<li>Delete your account</li>
</ul>
<h3>5.2 How to Exercise Your Rights</h3>
<ul>
<li>Within the app: My → Settings → Account Settings → Delete Account</li>
<li>Via email: 2821981550@qq.com</li>
<li>Via in-app feedback: My → About → User Feedback</li>
</ul>
<h3>5.3 Account Deletion Instructions</h3>
<ul>
<li>After submitting a deletion request, there is a 3-day review period</li>
<li>During the review period, you can cancel the deletion request</li>
<li>After the review is complete, your account and related data will be permanently deleted</li>
<li>Deleted data cannot be recovered, please proceed with caution</li>
</ul>
<h2>VI. Protection of Minors' Information</h2>
<h3>6.1 This app is not directed at children under the age of 14</h3>
<h3>6.2 We do not knowingly collect personal information from children under 14</h3>
<h3>6.3 If you are under 14, please do not use this app or provide personal information</h3>
<h3>6.4 If we discover that we have collected information from a child under 14, we will delete it immediately</h3>
<h3>6.5 Age verification mechanism: Users must confirm they are 14 years or older during registration</h3>
<h2>VII. Deceased Person's Information</h2>
<h3>7.1 The personal information of a deceased user may be handled by their close relatives in accordance with the law</h3>
<h3>7.2 Close relatives may request: reading, copying, correction, or deletion of the deceased's personal information</h3>
<h3>7.3 To exercise these rights, please contact: 2821981550@qq.com</h3>
<h2>VIII. Updates to This Privacy Policy</h2>
<h3>8.1 We may update this policy from time to time</h3>
<h3>8.2 For significant changes, we will notify you through:</h3>
<ul>
<li>In-app notification</li>
<li>Email notification</li>
<li>Prominent notice within the app</li>
</ul>
<h3>8.3 After the policy is updated, your continued use of the app constitutes acceptance of the updated policy</h3>
<h2>IX. Contact Us</h2>
<ul>
<li>Email: 2821981550@qq.com</li>
<li>In-app feedback: My → About → User Feedback</li>
<li>Mailing address: Dianchi Resort Area, Xishan District, Kunming, Yunnan Province, China (Bijie Subdistrict, Chejiabi No. 513)</li>
<li>ICP Registration: 滇ICP备2022000863号-18A</li>
<li>Personal Information Protection Officer: Mr. Li (Email: gg@0gg.cc)</li>
</ul>
<p>We will respond to your privacy-related requests within <span class="highlight">15 working days</span>.</p>
<h2>X. Legal Application and Dispute Resolution</h2>
<h3>10.1 This policy is governed by the laws of the People's Republic of China.</h3>
<h3>10.2 Disputes arising from this policy shall be resolved through friendly negotiation; if negotiation fails, either party may file a lawsuit with the People's Court having jurisdiction over our location.</h3>
<p>If any provision of this agreement is found to be invalid or unenforceable, the validity of the remaining provisions shall not be affected.</p>
</div>
</div>
<a href="index.html" class="back-link" id="back-link">← 返回协议列表</a>
</div>
<div class="footer" id="footer">
<div class="company" id="footer-company">弥勒市朋普镇微风暴网络科技工作室</div>
<div id="footer-contact">📧 2821981550@qq.com &nbsp;|&nbsp; 📧 2572560133@qq.com &nbsp;|&nbsp; 📍 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号</div>
<div style="margin-top: 8px;" id="footer-credit">统一社会信用代码92532526MA6PCX153W</div>
<div style="margin-top: 4px;" id="footer-icp">滇ICP备2022000863号-18A</div>
<div style="margin-top: 4px; color: var(--text-tertiary);">© 2026 Xianyan. All rights reserved.</div>
</div>
<script>
const DATA = {
zh: {
title: '隐私政策',
subtitle: '我们如何收集、使用、存储和保护您的个人信息',
backLink: '← 返回协议列表',
company: '弥勒市朋普镇微风暴网络科技工作室',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; <20> 2572560133@qq.com &nbsp;|&nbsp; <20> 云南省昆明市西山区滇池度假区碧鸡街道车家壁513号',
credit: '统一社会信用代码92532526MA6PCX153W',
icp: '滇ICP备2022000863号-18A'
},
en: {
title: 'Privacy Policy',
subtitle: 'How we collect, use, store and protect your personal information',
backLink: '← Back to Agreement List',
company: 'Mile City Pengpu Town Weifengbao Network Technology Studio',
contact: '📧 2821981550@qq.com &nbsp;|&nbsp; <20> 2572560133@qq.com &nbsp;|&nbsp; <20> Dianchi Resort, Xishan District, Kunming, Yunnan, China',
credit: 'Unified Social Credit Code: 92532526MA6PCX153W',
icp: 'ICP License: 滇ICP备2022000863号-18A'
}
};
function switchLang(lang) {
document.getElementById('content-zh').style.display = lang === 'zh' ? 'block' : 'none';
document.getElementById('content-en').style.display = lang === 'en' ? 'block' : 'none';
document.getElementById('header-title').textContent = DATA[lang].title;
document.getElementById('header-subtitle').textContent = DATA[lang].subtitle;
document.getElementById('back-link').textContent = DATA[lang].backLink;
document.getElementById('footer-company').textContent = DATA[lang].company;
document.getElementById('footer-contact').innerHTML = DATA[lang].contact;
document.getElementById('footer-credit').textContent = DATA[lang].credit;
document.getElementById('footer-icp').textContent = DATA[lang].icp;
document.getElementById('btn-zh').className = 'lang-btn' + (lang === 'zh' ? ' active' : '');
document.getElementById('btn-en').className = 'lang-btn' + (lang === 'en' ? ' active' : '');
document.documentElement.lang = lang === 'zh' ? 'zh-CN' : 'en';
const url = new URL(window.location);
if (lang === 'en') {
url.searchParams.set('lang', 'en');
} else {
url.searchParams.delete('lang');
}
history.replaceState(null, '', url);
}
(function() {
const params = new URLSearchParams(window.location.search);
const lang = params.get('lang');
if (lang === 'en') switchLang('en');
})();
</script>
</body>
</html>