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

如何通过Activity名或包名打开设备特定的设置页面?

实现启动器直接唤起指定AppLock设置页的方案

你不需要给启动器做任何业务页面,直接用一个透明的入口Activity做路由跳转即可,具体实现步骤如下:

  • 配置入口Activity的Manifest属性
    把入口Activity注册为桌面主页面,同时用系统透明主题避免跳转前出现闪屏,配置示例:
    <activity
        android:name=".RouterActivity"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    
    如果你的应用targetSdkVersion >= 30(Android 11),需要额外在Manifest根节点下添加包可见性声明,否则无法访问系统设置组件:
    <queries>
        <package android:name="com.android.settings" />
    </queries>
    
  • 编写跳转逻辑
    在入口Activity的onCreate方法中,不要调用setContentView加载布局,直接通过显式Intent指定目标Activity的组件名发起跳转,跳转后直接finish自身,避免留在返回栈中:
    // Java 示例
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent lockSettingsIntent = new Intent();
        // 显式指定目标设置页的组件:第一个参数是系统设置包名,第二个是目标Activity完整类名
        lockSettingsIntent.setComponent(new ComponentName(
                "com.android.settings",
                "com.android.settings.settings.AppLockSettingsActivity"
        ));
        lockSettingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(lockSettingsIntent);
        finish();
    }
    
    // Kotlin 示例
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val lockSettingsIntent = Intent().apply {
            component = ComponentName(
                "com.android.settings",
                "com.android.settings.settings.AppLockSettingsActivity"
            )
            addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
        }
        startActivity(lockSettingsIntent)
        finish()
    }
    
  • 兼容性处理说明
    • 部分深度定制ROM(如MIUI、ColorOS、OneUI)会修改系统设置的包名、调整应用锁设置页的类路径,硬编码组件名可能出现跳转失败。适配这类设备时,可以先通过PackageManager遍历设备上的设置应用组件,匹配类名包含AppLockSettingsActivity的项动态构造ComponentName。
    • 部分厂商的应用锁设置页仅对系统签名应用、内置白名单应用开放访问权限,普通第三方应用即使写对组件名也会抛出权限异常,这类场景下如果厂商没有提供公开的Settings Action,没有办法绕过限制直接跳转。

配置完成后,应用被设为默认桌面时,开机、按Home键都会直接进入目标应用锁设置页,不会展示你应用自身的任何页面,完全符合简易启动器的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:22:04