当前位置: 首页 > news >正文

唐山市政建设总公司网站软件开发服务平台

唐山市政建设总公司网站,软件开发服务平台,微擎小程序,网站怎么做丰富的tag标签页一、背景 在台式POS场景下,经常有应用会需要获取霸屏的权限,隐藏状态栏或者导航栏,且不能被划出,其实系统已经系统了隐藏状态栏也导航栏的接口,但是无法做到禁止滑出。 View decorView ((Activity) context).getWin…

一、背景

在台式POS场景下,经常有应用会需要获取霸屏的权限,隐藏状态栏或者导航栏,且不能被划出,其实系统已经系统了隐藏状态栏也导航栏的接口,但是无法做到禁止滑出。

View decorView = ((Activity) context).getWindow().getDecorView();int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;decorView.setSystemUiVisibility(uiOptions);

二、霸屏实现

通过广播形式实现:

1.在systemui中增加广播定义

diff --git a/vendor/mediatek/proprietary/packages/apps/SystemUI/AndroidManifest.xml b/vendor/mediatek/proprietary/packages/apps/SystemUI/AndroidManifest.xml
index 6420244..9dab3d4 100644
--- a/vendor/mediatek/proprietary/packages/apps/SystemUI/AndroidManifest.xml
+++ b/vendor/mediatek/proprietary/packages/apps/SystemUI/AndroidManifest.xml
@@ -342,6 +342,12 @@<protected-broadcast android:name="com.android.settingslib.action.UNREGISTER_SLICE_RECEIVER" /><protected-broadcast android:name="com.android.settings.flashlight.action.FLASHLIGHT_CHANGED" />+    <protected-broadcast android:name="com.systemui.statusbar.show" />
+    <protected-broadcast android:name="com.systemui.statusbar.hide" />
+
+    <protected-broadcast android:name="com.systemui.navigationbar.show" />
+    <protected-broadcast android:name="com.systemui.navigationbar.hide" />
+<applicationandroid:name=".SystemUIApplication"android:persistent="true"

2.增加广播的监听

diff --git a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index a853747..70d1586 100644
--- a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -287,6 +287,13 @@ public class CentralSurfacesImpl extends CoreStartable implementsprivate static final int MSG_LAUNCH_TRANSITION_TIMEOUT = 1003;// 1020-1040 reserved for BaseStatusBar+
+    private static final String ACTION_HIDE_STATUS_BAR = "com.systemui.statusbar.hide";
+    private static final String ACTION_SHOW_STATUS_BAR = "com.systemui.statusbar.show";
+    private static final String ACTION_HIDE_NAVIGATION_BAR = "com.systemui.navigationbar.hide";
+    private static final String ACTION_SHOW_NAVIGATION_BAR = "com.systemui.navigationbar.show";
+    private static final String SYS_PROPERTY_STATUS_BAR = "persist.sys.statusbar.enable";
+    private static final String SYS_PROPERTY_NAVIGATION_BAR = "persist.sys.navigationbar.enable";/*** The delay to reset the hint text when the hint animation is finished running.*/
@@ -969,6 +976,10 @@ public class CentralSurfacesImpl extends CoreStartable implementscreateAndAddWindows(result);+        if (!SystemProperties.getBoolean(SYS_PROPERTY_STATUS_BAR, false)) {
+            mStatusBarWindowController.setBarVisibility(View.GONE);
+        }
+if (mWallpaperSupported) {// Make sure we always have the most current wallpaper info.IntentFilter wallpaperChangedFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
@@ -1216,7 +1227,9 @@ public class CentralSurfacesImpl extends CoreStartable implements}mNotificationPanelViewController.setHeadsUpManager(mHeadsUpManager);-        createNavigationBar(result);
+        if (SystemProperties.getBoolean(SYS_PROPERTY_NAVIGATION_BAR, false)) {
+            createNavigationBar(result);
+        }if (ENABLE_LOCKSCREEN_WALLPAPER && mWallpaperSupported) {mLockscreenWallpaper = mLockscreenWallpaperLazy.get();
@@ -1454,6 +1467,10 @@ public class CentralSurfacesImpl extends CoreStartable implementsIntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);filter.addAction(Intent.ACTION_SCREEN_OFF);
+        filter.addAction(ACTION_HIDE_NAVIGATION_BAR);
+        filter.addAction(ACTION_SHOW_NAVIGATION_BAR);
+        filter.addAction(ACTION_HIDE_STATUS_BAR);
+        filter.addAction(ACTION_SHOW_STATUS_BAR);mBroadcastDispatcher.registerReceiver(mBroadcastReceiver, filter, null, UserHandle.ALL);}@@ -2729,6 +2746,18 @@ public class CentralSurfacesImpl extends CoreStartable implements}finishBarAnimations();resetUserExpandedStates();
+            } else if (ACTION_HIDE_NAVIGATION_BAR.equals(action)) {
+                mNavigationBarController.removeNavigationBars();
+                SystemProperties.set(SYS_PROPERTY_NAVIGATION_BAR, "false");
+            } else if (ACTION_SHOW_NAVIGATION_BAR.equals(action)) {
+                createNavigationBar(null);
+                SystemProperties.set(SYS_PROPERTY_NAVIGATION_BAR, "true");
+            } else if (ACTION_HIDE_STATUS_BAR.equals(action)) {
+                mStatusBarWindowController.setBarVisibility(View.GONE);
+                SystemProperties.set(SYS_PROPERTY_STATUS_BAR, "false");
+            } else if (ACTION_SHOW_STATUS_BAR.equals(action)) {
+                mStatusBarWindowController.setBarVisibility(View.VISIBLE);
+                SystemProperties.set(SYS_PROPERTY_STATUS_BAR, "true");}Trace.endSection();}

3.针对广播监听增加对应接口实现

diff --git a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
index d756af7..97a7744 100644
--- a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
+++ b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java
@@ -353,6 +353,13 @@ public class NavigationBarController implements}}+    public void removeNavigationBars() {
+        Display[] displays = mDisplayManager.getDisplays();
+        for (Display display : displays) {
+            removeNavigationBar(display.getDisplayId());
+        }
+    }
+/** @see NavigationBar#checkNavBarModes() */public void checkNavBarModes(int displayId) {NavigationBar navBar = mNavigationBars.get(displayId);
diff --git a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
index e0d780a..beef9aa 100644
--- a/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
+++ b/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/window/StatusBarWindowController.java
@@ -250,6 +250,10 @@ public class StatusBarWindowController {apply(mCurrentState);}+    public void setBarVisibility(int visibility) {
+        mStatusBarWindowView.setVisibility(visibility);
+    }
+/*** Sets whether an ongoing process requires the status bar to be forced visible.*

三、重新编译systemui,并测试

am broadcast -a com.systemui.statusbar.show   #状态显示
am broadcast -a com.systemui.statusbar.hide    #状态栏隐藏
am broadcast -a com.systemui.navigationbar.show #导航栏显示
am broadcast -a com.systemui.navigationbar.hide  #导航栏隐藏

注意广播需要root权限或者system权限,如果普通应用想具备此权限,需要修改广播的定义,大家可根据自己需求修改

http://www.yayakq.cn/news/742718/

相关文章:

  • 怎么查询网站空间商明薇通网站建设
  • 通过平台建网站汽车网站哪个好
  • 旅游门户网站有哪些上海电子通科技网站建设
  • 结构设计网站推荐网站开发流程详细步骤
  • 一般做外贸上什么网站好城乡住房和建设厅官网
  • 大庆 网站建设网站将要准备建设的内容
  • 找兼职做酒店网站流量推广怎么做
  • 网站开发法律可行性阿里云域名申请注册
  • 网站建设与管理实训报告总结藤虎广州网站建设
  • 贵阳市网站做的最好的seo推广代运营
  • 能联系做仿瓷的网站游戏开发成本
  • 深圳营销型网站公司电话一般网站的字体是什么
  • 流行的网站设计风格网站怎么对接微信支付宝
  • 白云移动网站建设群晖搭建wordpress端口多少
  • 哈尔滨专业建网站方案网络营销有哪些营销方式
  • 网站空间多久续一次费腾讯云网站备案
  • 哪个网站可以做结婚请柬怎么盗取网站
  • 天府新区网站建设网站开发岗位实际情况
  • 服务器如何搭建网站win8怎么建设网站
  • 广东企业网站模板设计wordpress网页效果
  • 一个网站源码值多少钱十个有创意的线上活动
  • 做网站有多难网页开发价格
  • 安康市住房和城乡建设局网站wordpress 搜索目录
  • 网站 防攻击深圳关键词排名推广
  • 一键提交网站线上广告推广
  • 提供邯郸wap网站建设网站建设的四个步骤
  • 宁夏网站设计在哪里苍南公司网站建设
  • 网站建设标签海安企业网站建设
  • 网站建设程序流程图网页技术与网站开发分析报告
  • 东莞网站建设团队全网天下实时热点新闻事件