屏幕解锁时启动安卓应用程序。

5
我想要开发一个锁屏替换应用程序。有没有办法创建一个监听器/服务,每当用户唤醒/解锁屏幕时就启动我的应用程序?

1
Android目前不支持替换默认锁屏。任何当前市场上声称可以这样做的应用程序都是利用安全漏洞,绝对不安全。请阅读此线程以获取更多有关此主题的信息。抱歉。 - Alex Lockwood
1
谢谢@AlexLockwood,我知道Android目前不支持构建锁屏替代品,但我想利用其中的安全漏洞,就像其他应用程序一样。 - Peter
哈哈...好的,那么你最好的选择是查看现有应用程序的源代码(请参见下面的Imran Khan的答案)。互联网上没有多少教程/示例代码来解释如何做这种事情,这肯定不是您在Android开发者网站或Android开发书中找到的东西。此外,对于StackOverflow上的人们来说,这并不是常识...编写这些应用程序的人具有非常特定的知识,需要进行大量分析才能理解...因此,在这里获得有用的答案的机会很小。 - Alex Lockwood
2个回答

8
我相信你需要查找 ACTION_USER_PRESENT 意图操作。

public static final String ACTION_USER_PRESENT

自API Level 3起 广播操作:当设备唤醒后用户出现时发送广播(例如,当键盘保护程序消失时)。

话虽如此,Android目前不支持替换锁屏。市场上任何声称可以做到这一点的应用程序都利用了安全漏洞,因此不安全。您可以阅读此帖子以获取更多信息(特别是要阅读Mark Murphy的帖子)。抱歉。

7
请查看mylockforandroid的源代码,并使用DeviceAdminReceiver来禁用默认的Android屏幕锁。为了在用户解锁屏幕时启动您的活动,请将Intent.ACTION_SCREEN_ONIntent.ACTION_SCREEN_OFF注册为:

在manifest.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);          
         }
    }
}

3
步骤1:用户将设备启动到安全模式。步骤2:用户卸载“mylockforandroid”应用程序。步骤3:现在,用户可以访问任何“mylockforandroid”应用程序声称已“锁定”的应用程序。因此,答案是否定的,没有可靠的方法来实现自己的屏幕锁应用程序。抱歉。 - Alex Lockwood
我尝试查看mylockforandroid代码,但它在新手机上的功能非常差。它经常崩溃或根本不起作用。 - Peter
@AlexLockwood:好的,我同意。你能告诉我如何为Android设备制作一个屏幕锁吗? - ρяσѕρєя K
你是指一个不可靠的屏幕锁定应用程序吗?因为你必须实现自己的固件才能编写一个可靠的应用程序。 - Alex Lockwood
@AlexLockwood:你的意思是所有屏幕锁,如Android屏幕解锁、ThrottleLock、StrongBox Lock等都是不可靠的屏幕锁应用程序?好的,我同意你的看法。向@Peter提出这个问题,问他为什么要创建一个不可靠的屏幕锁应用程序。 - ρяσѕρєя K
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接