SystemUI 怎样给应用提供禁止下拉状态栏接口?

        不积跬步无以至千里

        在系统开发的时候常常会遇到某些场景是不让下拉状态栏的,因为上边会有一些控制开关,还有一些通知的跳转,这样就会规避到这个原则,比如开机向导中让你为了一些安全措施必须完成的某些步骤等等.

         在这里系统其实已经为你提供了一个Api接口了,如下:

StatusBarManager mStatusBarManager = (StatusBarManager) context.getSystemService(Context.STATUS_BAR_SERVICE);
// Disable statusbar pull-down
mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);

          不过细心的童鞋点进Api中一看这个接口是@Hide的方法,因此对于一些三方的app是不让用的,这个方法好像反射也不行.那怎么办呢?咱们也不能把这个释放开啊,所以还是寻找其它解决办法.因此其实可以通过它控制的逻辑找出突破口.

           其实有兴趣的同学可以看一下我另一篇文章就是对这api的追踪代码,文章链接如下:

            https://blog.csdn.net/WDYShowTime/article/details/83782933

            其中文章有对这个disable的调用是通过StatusBarManagerService,然后其实根本的控制是想用户通过这个Manager然后通过这个disable等各种操作对SystemUI中的下拉的状态栏进行控制,所以看一下这个控制到SystemUI以后是在目录如下:

vendor/mediatek/propriet

猜你喜欢

转载自blog.csdn.net/WDYShowTime/article/details/89497672