我想知道我是否可以覆盖背部和主页按钮的动作是一些情况.通常这些按钮应该像往常一样反应,但在某些情况下,某些设置为真,我想覆盖按钮并让它们调用我自己的方法.
我使用这两种方法来覆盖这些按钮:
@Override
public void onBackPressed() {
// call my backbutton pressed method when boolean==true
}
@Override
public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
// call my homebutton pressed method when boolean==true
}
Run Code Online (Sandbox Code Playgroud) 我正在为一家公司制作专有应用程序,该应用程序永远不会将其发布到Ice Cream Sandwich(Android 4.0)中的Android Market(或我现在认为的Play商店).
我需要禁用Home,这样用户就无法恶意卸载软件或删除应用捕获的数据.这个最新版本是第一个用4.0编写的,以前的版本是用2.2和3.2编写的.
为了禁用2.2中的Home按钮,我将应用程序关联为主页替换,因此该按钮刚刚重新打开应用程序,但我无法再使用此方法,因为这有点阻止我们对应用程序进行更新(我们不知道)我想让用户选择重新选择Home默认值,因为这会导致数据删除.
我在3.2中禁用Home按钮的代码是:
@Override
public void onAttachedToWindow() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)
并且,在onCreate下:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
Run Code Online (Sandbox Code Playgroud)
但是当我运行在我的3.2平板电脑上运行的相同代码时,它在我的4.0平板电脑上不起作用.
我想知道是否有一个新的API或方法可以达到与我目前在3.2实现中相同的效果.
感谢您的帮助或指导.
亚当
android android-3.0-honeycomb keyguard android-4.0-ice-cream-sandwich
在我的应用程序中,onUserLeaveHint()
当用户按下主页按钮时我依赖于方法,但是当您在Android 7.0中通过长按"最近按钮"(我不想执行)来启动多窗口模式时也会调用此方法当按下主页按钮时我做的事情相同).所以我想知道是否有办法检测哪个是哪个.干杯!
注意: onMultiWindowModeChanged()
被叫之后 onUserLeaveHint()
android ×3
android-4.0-ice-cream-sandwich ×1
back-button ×1
button ×1
java ×1
keyguard ×1
multi-window ×1
overriding ×1