
我试图在使用旧Android *** 作系统的嵌入式系统的导航栏上以编程方式更改一些内容.我缩小到处理下面导航栏的班级.
https://android.googlesource.com/platform/frameworks/base/+/7d8abae/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
该对象似乎在这里声明:
https://android.googlesource.com/platform/frameworks/base/+/598a7aedfb6b77fc98bace9f420968a6f3ed637e/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
第238行
私有NavigationbarVIEw mNavigationbarVIEw = null;
有没有办法以编程方式获取指向此对象的指针?我唯一能找到的代码是获取更大容器的代码,就像以编程方式隐藏导航栏一样.
VIEw decorVIEw = getwindow().getDecorVIEw(); int uiOptions = VIEw.SYstem_UI_FLAG_HIDE_NAVIGATION | VIEw.SYstem_UI_FLAG_IMMERSIVE_STICKY; decorVIEw.setsystemUIVisibility(uiOptions);然而,这还不够.我想深入到navbar drawables.
任何线索都非常感谢.
谢谢.
附:由于它是一个嵌入式系统,所以如果我改变 *** 作系统是好的,因为它永远不会在谷歌商店.
解决方法:
通过反射无法在Phonestatusbar中获取mNavigationbarVIEw对象.
这个对象生活在进程com.androID.systemUI中,你自己的进程无法使用反射访问另一个进程的对象.
一种可能的方法是使用Xposed框架.通过Phonestatusbar方法中的一些挂钩,您可以访问mNavigationbarVIEw对象.
已经有一些模块可以修改navigationbar,例如:Xperia/AOSP NavBar Buttons .您可以按照本教程modify SystemUI’s clock style using Xposed framework进行 *** 作.
总结以上是内存溢出为你收集整理的通过反射获取NavigationBarView.java的“指针”全部内容,希望文章能够帮你解决通过反射获取NavigationBarView.java的“指针”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)