问题
I do know that it is ill advice to take control of the HOME button for users. But I'm developing a android lockdown application for educational purposes. I was browsing the site and came upon this link on disabling the home button.
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Currently I'm using the above code to disable my home button, however I do notice that even though I have this in my onCreate
getWindow.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
I am unable to remove my notification bar remove. Please advice.
回答1:
Just use a different theme for your activity. In your Manifest.xml, set the theme attribute of your activity to android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
回答2:
you can disable power button! you can try this: Project: DisableAllButton
Disable Search, Back key: in "DisableAllButton.java"
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { return false; }
Disable Home key: in "DisableAllKey.java"
@Override public void onAttachedToWindow() { // TODO Auto-generated method stub this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); }
Disable Powerkey: in "DisableAllKey.java"
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE); KeyguardManager.KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard();
in AndroidManifest
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
and set fullscreen in AndroidManifest
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
done! :D.
回答3:
check Android source code, View.java
public static final int STATUS_BAR_DISABLE_HOME = 0x00200000;
STATUS_BAR_DISABLE_HOME flag is hide from the standard api.
we can just use 0x00200000 to set system ui visibility ,as:
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(decorView.getSystemUiVisibility()|0x00200000);
but you should add
<uses-permission android:name="android.permission.STATUS_BAR" />
first, this permission only granted to system apps
来源:https://stackoverflow.com/questions/6507063/home-button-disable