Вы можете затемнить его, используя SYSTEM_UI_FLAG_LOW_PROFILE, но оно появится, когда пользователь коснется панели.Но вы можете отключить его, кроме home.
добавить это в манифест.
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
внутри onCreate ()
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_home);
View v = findViewById(R.id.home_view);
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
, где home_view - родительское представление XML-файла.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return false;
}
public void onWindowFocusChanged(boolean hasFocus)
{
try
{
if(!hasFocus)
{
Object service = getSystemService("statusbar");
Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
Method collapse = statusbarManager.getMethod("collapse");
collapse .setAccessible(true);
collapse .invoke(service);
}
}
catch(Exception ex)
{
}
}
вы не можете захватить домашнее событие, единственное, что вы можете сделать, это указать домашнюю категорию приложения и позволить пользователю выбрать.
<category android:name="android.intent.category.HOME" />