我有一个应用程序,当它推出我必须禁用的Android设备上的所有按钮,我成功地禁用结束通话等。 我需要禁用的主页按钮点击。 它不应该产生的点击任何行动。
任何建议高度赞赏
我有一个应用程序,当它推出我必须禁用的Android设备上的所有按钮,我成功地禁用结束通话等。 我需要禁用的主页按钮点击。 它不应该产生的点击任何行动。
任何建议高度赞赏
我敢肯定,幼儿锁只是使用BroadcastReciever并侦听Intent.ACTION_MAIN
和类别Intent.CATEGORY_HOME
-这就是为什么当你第一次启动它,它会告诉你勾选“使用默认应用程序”对话框,让你选择孩子锁。
因此,它不是真正的封锁Home键可言,它只是设置自己打扮成默认广播接收器:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
当您启动幼儿锁,它可能设置一个内部标志,如果你按下home键,它只是将窗口前。 如果没有设置标志,它可能启动启动明确。
我希望这是有道理的。 这只是一个理论,但我几乎可以100%肯定这是它是如何做。
添加以下代码到你的活动:
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
编辑:
这适用于所有旧版本的Android。 但不会在工作 ICS
和果冻豆,并给你崩溃的应用程序
这是什么4行java代码意味着Android应用程序?
在你的manifest.xml添加这为您的主要活动:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
主页按钮总是(重新)启动您的活动。 工程在升级Froyo。
在这里 ,你可以找到它坚持在主页上我的Android示例应用程序。 主页,后退,通话,电源按钮被禁用。 用户只能通过输入密码结束应用程序。
我找到了一种方法来解决HOME键。 为了您的应用程序设置的表现为
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>
现在乌尔应用是替代启动应用程序。
使用adb,并使用包管理器禁用启动应用程序
pm disable com.android.launcher2
现在的Home键按下将laways留在同一个屏幕上。
进一步的除了杰弗里斯后,这里的东西,为我工作(现在仍然允许半透明主题)
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
监守它使键盘锁上来,你也可以只禁用键盘锁,而应用程序是使用:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
这个作品真的很好,让你的键盘保护自己的应用程序。