禁用应用中Android系统的导航栏(特别是平板)

由于公司项目是在全屏下的,所有界面都是全屏,唯有弹出提示框的时候,会出现系统的导航栏,由于是平板,导航栏信息比较多,该项目属于永不让用户进入原系统的项目。所以有导航栏,就让用户有了机会进入后台。

本今天在网上找了很多资料,试了很多方法,终于可以把导航栏的图表隐藏掉,点击事件也禁用了。唯有不足之处就是下面还有一个黑条,不管了,讲究用了。

public class StatusUtils {//disable为是否禁用导航栏true为禁用 public static void statusBarDisable(boolean disable,Context mContext) {try {int DISABLE_NAVIGATION = StatusBarManager.DISABLE_EXPAND| StatusBarManager.DISABLE_BACK| StatusBarManager.DISABLE_NOTIFICATION_ICONS| StatusBarManager.DISABLE_NOTIFICATION_ALERTS| StatusBarManager.DISABLE_NOTIFICATION_TICKER| StatusBarManager.DISABLE_SYSTEM_INFO| StatusBarManager.DISABLE_NAVIGATION| StatusBarManager.DISABLE_CLOCK;int DISABLE_NONE = 0x00000000;//获得ServiceManager类Class<?> ServiceManager = Class.forName("android.os.ServiceManager");//获得ServiceManager的getService方法Method getService = ServiceManager.getMethod("getService", java.lang.String.class);//调用getService获取RemoteServiceObject oRemoteService = getService.invoke(null,"statusbar");//获得IStatusBarService.Stub类Class<?> cStub = Class.forName("com.android.internal.statusbar.IStatusBarService$Stub");//获得asInterface方法Method asInterface = cStub.getMethod("asInterface", android.os.IBinder.class);//调用asInterface方法获取IStatusBarService对象Object oIStatusBarService = asInterface.invoke(null, oRemoteService);//获得disable()方法Method disableMethod = oIStatusBarService.getClass().getMethod("disable",int.class,IBinder.class,String.class);//调用disable()方法if(disable){disableMethod.invoke(oIStatusBarService,DISABLE_NAVIGATION,new Binder(),mContext.getPackageName());}else{disableMethod.invoke(oIStatusBarService,DISABLE_NONE,new Binder(),mContext.getPackageName());}}catch (Exception e) {Log.e("status", e.toString(), e);}} }这用了反射机制,调用StatusManager类的disable方法,,将导航的功能禁用。该类是@hide的,对外是不可见,不可用,所以只能用反射了。

接下来要做的就是给应用添加权限

<uses-permission android:name="android.permission.STATUS_BAR"/><uses-permission android:name="android.permission.DISABLE_STATUS_BAR"/>

在manifest中添加android:sharedUserId="android.uid.system"属性

最后应用要签名:用signapkjava -jar signapk.jar certificate.pem key.pk8 your-app.apk your-signed-app.apk

最后就Ok了。

松树亭亭玉立的耸立在周围小草小花的中间,

禁用应用中Android系统的导航栏(特别是平板)

相关文章:

你感兴趣的文章:

标签云: