5

我想构建一个锁屏替换应用程序。有没有办法创建一个监听器/服务,只要用户唤醒/解锁屏幕,它就会启动我的应用程序?

4

2 回答 2

8

我相信您正在寻找ACTION_USER_PRESENT意图操作。

公共静态最终字符串 ACTION_USER_PRESENT

自:API 级别 3 广播操作:在设备唤醒后用户在场时发送(例如,当键盘保护消失时)。

也就是说,Android 目前不支持更换锁屏。市场上声称这样做的任何应用程序都利用了安全漏洞并且不安全。您可以阅读此线程以获取更多信息。(特别是,您应该阅读 Mark Murphy 的帖子)。对不起。

于 2012-06-23T20:10:27.253 回答
8

查看mylockforandroid的源代码, 您将需要使用DeviceAdminReceiver来禁用默认的 android 屏幕锁定。

用于在用户解锁屏幕注册时启动您的活动,Intent.ACTION_SCREEN_ON并且注册Intent.ACTION_SCREEN_OFF为:

在 manifast.xml 中添加此代码,将 ScreenReceiver 注册为:

<receiver android:name=".ScreenReceiver">
 <intent-filter>
 <action android:name="android.intent.action.SCREEN_OFF"/>
 <action android:name="android.intent.action.SCREEN_ON"/>
 </intent-filter>
 </receiver>

并将 ScreenReceiver.java 添加为:

 public class ScreenReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
         if (intent.getAction().equals(Intent.ACTION_SCREEN_ON))
         {
            Intent intent = new Intent();  
            intent.setClass(context, ScreenLockActivity.class);
            startActivity(intent);          
         }
    }
}
于 2012-06-23T20:15:55.860 回答