Prevent status bar for appearing android (modified)
We could not prevent the status appearing in full screen mode in kitkat devices, so made a hack which still suits the requirement ie block the status bar from expanding.
For that to work, the app was not made full screen. We put a overlay over status bar and consumed all input events. It prevented the status from expanding.
note:
- customViewGroup is custom class which extends any
layout(frame,relative layout etc) and consumes touch event. - to consume touch event override the onInterceptTouchEvent method of
the view group and return true
Updated
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
customViewGroup implementation
Code :
WindowManager manager = ((WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE));
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 recieve 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;
customViewGroup view = new customViewGroup(this);
manager.addView(view, localLayoutParams);
Hide status bar or empty it permanently
As I am working on creating a special purpose machine and I need the android device to do only 1 thing I ended up creating my own AOSP build with the following mod:
The status bar layout is here:
frameworks/base/packages/SystemUI/res/layout/status_bar.xml
Did change the height to 0dp.
Works perfectly fine, there is no status bar anymore.
Thanks everyone who downvoted the question.
It is also possible to "empty" the status bar by making the icons visibility to GONE (AOSP custom build solution again)...
Android Hide & Disable Notification (Status) Bar
Instead of following links to other answers, here's what I did.
This solution does not disallow a user to "view" the status bar in it's 'preview' state if pulled down (even in a full screen app), but it DOES disallow a user from pulling the status bar down to it's full state to see settings, notifications, etc.
You must first add the permissions in your AndroidManifest.xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Then add another class (Java file) called customViewGroup.java
and place this code in it:
import android.content.Context;
import android.util.Log;
import android.view.MotionEvent;
import android.view.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) {
Log.v("customViewGroup", "**********Intercepted");
return true;
}
}
After you have both of those set up, you can then add this into your main onCreate()
WindowManager manager = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE));
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 recieve 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;
customViewGroup view = new customViewGroup(this);
manager.addView(view, localLayoutParams);
This solution disables the ability to pull the status bar down always, until your app is closed. You'll have to remove this action on pause if you don't want to close your app every time.
Credit goes to @Abhimaan Madhav from This Answer
Related Topics
Add "View More" at the End of Textview After 3 Lines
Failed Binder Transaction When Putting an Bitmap Dynamically in a Widget
Sliding Drawer Appear in All Activities
Android - How to Make Slide Menu Like Facebook, Spotify and Google +
How to Add to My Android Application a Button Than Do Like to a Facebook Page
Force Update of an Android App When a New Version Is Available
Toolbar Navigation Icon Never Set
How to Add Items to a Spinner in Android
Android - Controlling a Task with Timer and Timertask
Google Places API Request Denied for Android Autocomplete, Even with the Right API Key
How to Get My Android Device Country Code Without Using Gps
Error Strictmode$Androidblockguardpolicy.Onnetwork
Android Java.Lang.Noclassdeffounderror
Activity Declaration in Androidmanifest.Xml
How to Set Custom Actionbar Color/Style
Cursor Adapter and SQLite Example
How to Create Preference Activity and Preference Fragment on Android