手机锁定时启动外部活动

时间:2012-08-05 16:20:37

标签: android lockscreen android-windowmanager

我希望能够在设备密码锁定时启动不属于我的应用的活动。如果可能的话,我怎么能这样做?

注意:我很清楚将getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);放在我的onCreate活动中。但是,这不起作用,因为我没有开始自己的活动,而是在我的应用程序之外的第三方活动。

3 个答案:

答案 0 :(得分:1)

覆盖功能

public void onAttachedToWindow() {

    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

这将在解锁后显示您的活动。

答案 1 :(得分:1)

只有当实际开发人员通过覆盖您尝试在应用中打开的活动中的onAttachedToWindow()方法编写代码时,才有可能。

如果没有,那么,很遗憾地说,但你没有选择做你想做的事情(就最近的API而言)

答案 2 :(得分:1)

如果您尝试通过锁定屏幕启动任何第三方应用,则无效。正如您自己观察到的那样,您需要设置窗口标记以确保通过锁定屏幕启动活动,无法确保来自其他第三方应用程序的活动也设置相同的标记。

如果您要构建一个功能包,其中每个功能只是一个不同的应用程序,那么您必须确保这些功能的所有入口点都设置此窗口标志。最好的方法是声明一个BaseActivity,它在创建时设置正确的标志,并让所有功能开发团队将其用作入口点的基类。