创建一个Android锁屏应用程序。

30
如何创建一个锁屏应用程序,作为安卓手机的锁屏。我找到了一个应用程序,但是代码构建很差,如果我按实体主页键,它就会解锁,这使得该应用程序没有意义。
我发现一个论坛声称在Android 4.x中删除了一些阻止主页按钮功能的方法。
然而,我有一个绝妙的锁屏创意却无从下手。如果有人对此有任何了解,我很乐意听取。

谢谢大家 :-)

我原以为会有某种提示来表明这有多难,我的意思是例如在市场上有太多的东西,使我相信有相当数量的开发者可以做到,你会认为会有某种教程! - user3047494
请查看此链接...http://forum.xda-developers.com/showthread.php?t=1754753 - Talha Q
一个真正禁用切换的屏幕将是一个可怕的安全漏洞。 - chrylis -cautiouslyoptimistic-
是的,我已经完成过这种项目,它非常有可能。需要清单权限以及启动接收器和其他一些东西。如果您需要代码,请告诉我。 - Satyaki Mukherjee
你可以检查我的答案,我认为它会帮助你实现你想要的 https://dev59.com/zWEh5IYBdhLWcg3w0WRP#28603790 - Miguel
2
@SatyakiMukherjee,你能分享一下你的源代码吗? - baldguy
1个回答

37
是的,这是可能的。这是一个来自GitHub的简单锁屏源代码
创建一个像锁屏一样工作的应用程序并不是什么大问题,但是正如你所说的Home键问题,我建议你继续开发应用程序,尽可能满足你的需求,唯一会遇到困难的地方就是Home键控制,所以尝试找到一些巧妙的方法来控制Home键,并将其作为你的锁屏应用程序的启动器。虽然不是非常复杂,但有点棘手。如果我能找到任何Home键访问源代码,我会给你发帖的。
PS:
这里是访问Home键的教程。
我在某个地方找到了Home键覆盖。在应用程序清单中添加以下几行。
以下两行代码将起到魔法的作用。
 <action android:name="android.intent.action.MAIN" />              
        <category android:name="android.intent.category.HOME" />                 
        <category android:name="android.intent.category.DEFAULT" />               
   

在您的活动中重写此方法
@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);           
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_HOME)
    {
        Log.i("Home Button","Clicked");
    }
    if(keyCode==KeyEvent.KEYCODE_BACK)
    {
        finish();
    }
    return false;
}

请记住,我没有测试过这些代码或方法,只是试图帮助你(你可能会发现一些缺点)。

3
主屏幕键解决方案部分可行。只有用户同意将您的应用程序定义为此操作的回调应用程序,它才会覆盖主屏幕按钮。 - Mugen
是的先生,我们在安卓应用程序中的每一个操作都需要用户的批准!我觉得这没什么大不了的吧? - Kirk
好的,你不需要用户的批准就可以覆盖“返回”按钮。用户会认为我的应用程序可以自己控制“主页”按钮,并不会期望它要求我选择哪个应用程序应该控制主页按钮。 - Mugen
只需使用Adenda SDK。它本质上扩展了标准Android库,使您的工作更简单。 - Cigogne Eveillée
@CigogneEveillee http://www.adendamedia.com/#intro 他们提供SDK或应用程序吗?我找到了他们的应用程序,但需要付费。你是如何使用它的?能否请你解释一下? - Erum
@Kirk,最新的API 28和29是否支持这个功能? - Deepak Kumar

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