Markor 申请了哪些 Android 权限?逐一解释为什么需要
Markor 申请了哪些权限
| 权限 | 作用 | 是否必要 |
|---|---|---|
| WRITE_EXTERNAL_STORAGE / READ_EXTERNAL_STORAGE | 读写本地文件 | ✅ 核心功能——Markor 是文件编辑器 |
| MANAGE_EXTERNAL_STORAGE | Android 11+ 管理「所有文件访问权限」 | ✅ 如果要操作 Android 数据分区之外的目录(如 SD 卡、Downloads) |
| INTERNET | 网络访问 | ⚠️ 仅当 Markdown 内容里引用了外部图片 URL 时才用 |
| INSTALL_SHORTCUT | 在主屏幕创建 Markor / ToDo / QuickNote 启动器快捷方式 | ✅ 可选功能 |
| REQUEST_INSTALL_PACKAGES | 请求安装 APK(当你用 Markor 打开 APK 文件时) | ❌ 极少用到 |
| 特殊权限 net.gsantner.markor.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | 应用内部通信 | ✅ 系统用,用户无感知 |

重点解读
存储权限
这是 Markor 最核心的权限。如果拒绝存储权限,Markor 基本上没法用——因为它是一个纯文件编辑器,文件存储是它的生存基础。
Android 11+ 引入了「Scoped Storage(分区存储)」机制。在分区存储下:
- 应用只能直接访问自己专属的应用目录(不需要特殊权限)
- 要访问 其他目录(Downloads、Documents、SD 卡等),就需要 MANAGE_EXTERNAL_STORAGE 权限
所以:
- 如果你只在 Markor 自己的内部应用目录里写笔记,可以不授予 MANAGE_EXTERNAL_STORAGE
- 如果你想把 Notebook 根目录设为 Downloads 或 SD 卡某个目录,必须授予 MANAGE_EXTERNAL_STORAGE
INTERNET 权限
这是 Markor 最容易被误解的权限。它 不会:
- 在后台偷偷联网上传你的笔记
- 发送遥测数据给开发者
- 加载任何开发者服务器的资源
它唯一的用途是:当你在 Markdown 里写了外部网络图片 URL(不是本地文件路径)这样的语法时,Markor 在预览模式会需要联网来加载图片。如果你的 Markdown 全用本地图片路径,这个权限实际上用不到。
所以 Markor 开发者在 README 里特意声明:Markor 完全离线可用,不需要网络连接。
为什么没有这些权限
你注意到 Markor 没有申请以下常见权限:
- ❌ CAMERA —— 不会在后台偷偷打开摄像头
- ❌ RECORD_AUDIO —— 不会录音
- ❌ ACCESS_FINE_LOCATION —— 不会读取位置
- ❌ READ_CONTACTS —— 不会读取通讯录
- ❌ READ_SMS —— 不会读短信
- ❌ BLUETOOTH —— 不会用蓝牙
- ❌ POST_NOTIFICATIONS(Android 13+)—— 默认不弹通知
这和 Google Keep、Notion、Evernote 等应用形成了鲜明对比——那些应用申请的权限通常在 15-25 个之间,覆盖后台数据同步、推送通知、摄像头拍照笔记、位置标签等场景。
Markor 的极简权限设计直接来自它的三条原则:纯文本优先、本地存储、离线优先。一个不需要云服务的纯文本编辑器,确实不需要那么多权限。
隐私承诺
Markor 在 README 的 Privacy 章节里明确写了:
Markor does not use your internet connection unless your own user-generated content references external resources. The app works completely offline, no internet connection required. No personal data is shared with the author or any third parties. Files are stored locally in a user selectable folder.
翻译过来:除非你自己写的 Markdown 引用了外部图片 URL,否则 Markor 不联网。完全离线运行。不向开发者或任何第三方发送个人数据。文件存放在用户自选的本地目录。