Хитрость заключается в том, чтобы добавить прозрачный пользовательский вид, что накладки на системной панели, что так как все пользовательские взаимодействия, такие как touch, drag, будут потребляться пользовательским представлением.
Вот рабочий код:
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
statusBarOverlay = new CustomViewGroup(this);
final WindowManager.LayoutParams localLayoutParams =
new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |
// this is to enable the notification to receive touch events
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
// Draws over status bar
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height =
(int) (50 * getResources().getDisplayMetrics().scaledDensity);
localLayoutParams.format = PixelFormat.TRANSPARENT;
windowManager.addView(statusBarOverlay, localLayoutParams);
Пользовательские ViewGroup
:
public class CustomViewGroup extends ViewGroup {
public CustomViewGroup(Context context) {
super(context);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
}
Я сам сделал замок функцию мое приложение, хотя я отделил функцию стопорного в другое приложение по многим причинам , Вы можете запросить дополнительную информацию, и я положу их здесь, если это необходимо.
Были ли у вас недавние задания на леденец? Поскольку это будет проблемой для вас, я уже пережил этот тип ситуации. – Androider
@ Аndroid это не проблема. Я ищу параметр настройки. Это полностью отключено в приложении surelock. У вас есть представление об этом? –
добавить вид на системный бар – Androider