You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter应用因未经许可跳转开发者选项遭拒,如何申请系统设置权限?

解决Google Play因自动跳转开发者选项拒审的问题

核心问题分析

你的应用被拒的原因不是权限缺失,而是未经用户明确许可自动跳转系统设置违反了Google Play的政策要求。另外,跳转开发者选项页面并不需要WRITE_SETTINGS相关权限,你之前添加的权限是多余的。

解决方案步骤

  1. 移除不必要的权限
    打开AndroidManifest.xml,删除以下两个权限声明:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACTION_MANAGE_WRITE_SETTINGS" /> 
  1. 修改逻辑:先向用户提示,再由用户主动触发跳转
    将原来的自动跳转逻辑,改成先通过对话框告知用户情况,等待用户确认后再跳转。示例代码如下:

首先完善跳转函数(补充launch()调用):

void openDeveloperOptionsSettings() async {
  AndroidIntent intent = const AndroidIntent(
    action: 'android.settings.APPLICATION_DEVELOPMENT_SETTINGS',
  );
  await intent.launch(); // 补充启动intent的代码
}

然后修改检测后的处理逻辑:

bool jailbroken;
try {
  jailbroken = await FlutterJailbreakDetection.jailbroken ||
      await FlutterJailbreakDetection.developerMode;
} on PlatformException {
  jailbroken = true;
}

if (jailbroken) {
  // 弹出用户确认对话框,获取用户同意后再跳转
  showDialog(
    context: context,
    builder: (BuildContext context) {
      return AlertDialog(
        title: const Text('开发者模式提示'),
        content: const Text('检测到您的设备开启了开发者模式,为确保应用正常运行,请前往开发者选项关闭该功能。'),
        actions: [
          TextButton(
            onPressed: () => Navigator.pop(context),
            child: const Text('取消'),
          ),
          TextButton(
            onPressed: () {
              Navigator.pop(context);
              openDeveloperOptionsSettings();
            },
            child: const Text('前往设置'),
          ),
        ],
      );
    },
  );
}

关键说明

  • Google Play要求所有跳转系统设置的操作必须由用户主动触发,禁止应用后台自动跳转,这是你被拒的核心原因,修改后即可符合政策要求。
  • WRITE_SETTINGS权限用于修改系统设置项(如亮度、字体大小),仅打开开发者选项页面不需要该权限,移除后可减少权限申请的冗余。

内容的提问来源于stack exchange,提问作者Fidel AHM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:26:18