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

Android 14锁屏下如何用PendingIntent调用startActivityAndCollapse?

解决Android 14锁屏下通过PendingIntent启动TileService Activity需解锁的问题

要在使用startActivityAndCollapse(PendingIntent)时实现锁屏直接显示Activity,需要从Intent配置、Activity清单声明和Activity内部设置三个方面调整:

1. 调整启动Intent的Flag

在创建启动MainActivity的Intent时,显式添加FLAG_ACTIVITY_SHOW_WHEN_LOCKED,确保系统允许锁屏状态下启动该Activity:

Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SHOW_WHEN_LOCKED);

2. 在Manifest中配置Activity的锁屏显示权限

给MainActivity添加锁屏相关的清单属性,明确允许其在锁屏状态下显示:

<activity
    android:name=".MainActivity"
    android:showWhenLocked="true"
    android:showOnLockScreen="true"
    android:turnScreenOn="true"> <!-- 可选:如果需要点击Tile时自动点亮屏幕 -->
    <!-- 其他原有配置 -->
</activity>

3. 完善MainActivity的锁屏显示逻辑

在MainActivity的onCreate方法中,补充覆盖不同Android版本的锁屏显示兼容代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
        setShowWhenLocked(true);
        setTurnScreenOn(true); // 可选:自动点亮屏幕
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().addFlags(
            WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
            WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
        );
    } else {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    }
}

4. 保持PendingIntent的正确创建

确保PendingIntent使用FLAG_IMMUTABLE(Android 12+推荐标准),无需修改现有创建逻辑:

PendingIntent pendingIntent = PendingIntent.getActivity(
        appContext, 0, intent, PendingIntent.FLAG_IMMUTABLE
);
this.startActivityAndCollapse(pendingIntent);

经过以上调整,点击快捷设置Tile后,MainActivity就能在Android 14的锁屏状态下直接显示,无需解锁设备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:34:57