fullscreen immersive gestures(华为sound多功能键在哪里设置)

本文目录
华为sound多功能键在哪里设置
华为sound多功能键的设置方法如下:
1. 进入手机的“设置”菜单;
2. 找到并点击“系统”选项;
3. 点击“多点触控”选项;
4. 点击“Knuckle Gestures(Touchscreen Gestures)”选项;
5. 找到并点击“启用音响键(Disallow at fullscreen app)”选项;
6. 打开“启用音响键”选项;
完成以上步骤后,就可以在华为手机上使用Sound多功能键了。在使用时,只需双击手机屏幕,然后在手机屏幕上画出对应的图案即可触发对应功能。例如,画出一个“C”字形的手势就可以打开相机。需要注意的是,使用音响键之前需要先启用Touchscreen Gestures功能。如果无法正常使用或者需要更多帮助,建议查看华为手机的用户手册或者联系售后客服。
java 在ubuntu下实现全屏,上面的状态栏依然显示如下图,不想要上面的状态栏
您好,这样的:
Google从KK开始增加了状态栏透明以及全屏界面有通知可以下拉状态栏的设计,而这个设计出现的隐患是设置了FULL_SCREEN的界面是无法禁止状态栏下拉的,这样对一些工程测试app可能会造成一定的影响,但是以google默认的设计,应用端无法修改此设计来满足自己的需求。
MTK 内部已经开发提供新的接口来实现全屏界面禁止下拉状态栏,如果贵司的代码还没有这部分逻辑,请参考如下:
1. frameworks\base\core\java\android\view\View.java
view plaincopy
public static final int SYSTEM_UI_FLAG_IMMERSIVE_STICKY = 0x00001000;
+ /**
+ * @hide
+ *
+ * NOTE: Flag for {@link #setSystemUiVisibility(int)}: It help user to disable transient
+ * status bar triggered by gesture
+ */
+ public static final int SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED = 0x00002000;
2. frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
view plaincopy
// monitor for system gestures
mSystemGestures = new SystemGesturesPointerEventListener(context,
new SystemGesturesPointerEventListener.Callbacks() {
@Override
public void onSwipeFromTop() {
+ if (isGestureIsolated())
+ return;
if (mStatusBar != null) {
requestTransientBars(mStatusBar);
}
}
@Override
public void onSwipeFromBottom() {
+ if (isGestureIsolated())
+ return;
if (mNavigationBar != null && mNavigationBarOnBottom) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onSwipeFromRight() {
+ if (isGestureIsolated())
+ return;
if (mNavigationBar != null && !mNavigationBarOnBottom) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onDebug() {
// no-op
}
+ private boolean isGestureIsolated() {
+ WindowState win = mFocusedWindow != null ? mFocusedWindow : mTopFullscreenOpaqueWindowState;
+ if (win != null && (win.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED) != 0)
+ return true;
+ else
+ return false;
+ }
});
3. 请在修改完framework后,将测试app用setSystemUiVisibility的API加上SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED的flag。
android systemui禁止下拉怎么做
PhoneWindowManager.java里面的修改
view plain copy
--- a/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -2863,7 +2863,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
@Override
public int adjustSystemUiVisibilityLw(int visibility) {
- mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+ if(Settings.System.getInt(mContext.getContentResolver(),"factorytest.touch.mode",0) == 0){
+ mStatusBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
+ }
mNavigationBarController.adjustSystemUiVisibilityLw(mLastSystemUiFlags, visibility);
// Reset any bits in mForceClearingStatusBarVisibility that
Acitvity里面使用如下方式:
view plain copy
--- a/huaqin/source/packages/FactoryKitTest/src/com/android/huaqin/factory/TestTouchPanelLine2.java
+++ b/huaqin/source/packages/FactoryKitTest/src/com/android/huaqin/factory/TestTouchPanelLine2.java
@@ -32,6 +32,8 @@ import android.view.WindowManager;
import java.util.ArrayList;
import java.util.List;
+import android.provider.Settings;
+import android.app.StatusBarManager;
public class TestTouchPanelLine2 extends Activity {
private static final String TAG = "TestTouchPanelLine";
@@ -54,6 +56,7 @@ public class TestTouchPanelLine2 extends Activity {
private static final int MSG_TEST_PANEL_NEXT_ITEM = 100;
private static final int MSG_TEST_PANEL_START = 101;
private static final int MSG_TEST_PANEL_STOP = 102;
+ private StatusBarManager mStatusBarManager;
private Handler mInHandler = new Handler() {
@Override
@@ -94,6 +97,12 @@ public class TestTouchPanelLine2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -141,8 +150,22 @@ public class TestTouchPanelLine2 extends Activity {
.obtainMessage(FactoryTestMessage.MSG_OPEN_UI_OK);
msg.arg1 = (int) ID;
mOutHandler.sendMessage(msg);
+ mStatusBarManager = (StatusBarManager) this.getSystemService(Context.STATUS_BAR_SERVICE);
+ int state= StatusBarManager.DISABLE_EXPAND;
+ state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS;
+ state |= StatusBarManager.DISABLE_SYSTEM_INFO;
+ mStatusBarManager.disable(state);
}
+ @Override
+ protected void onPause() {
+ int state = StatusBarManager.DISABLE_NONE;
+ mStatusBarManager.disable(state);
+ super.onPause();
+ }
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 是否触发按键为back键
以下是从MTK Online 上面找到的解决方案,保留备用。
Google从KK开始增加了状态栏透明以及全屏界面有通知可以下拉状态栏的设计,而这个设计出现的隐患是设置了FULL_SCREEN的界面是无法禁止状态栏下拉的,这样对一些工程测试app可能会造成一定的影响,但是以google默认的设计,应用端无法修改此设计来满足自己的需求。
MTK 内部已经开发提供新的接口来实现全屏界面禁止下拉状态栏,如果贵司的代码还没有这部分逻辑,请参考如下:
1. frameworks\base\core\java\android\view\View.java
view plain copy
public static final int SYSTEM_UI_FLAG_IMMERSIVE_STICKY = 0x00001000;
+ /**
+ * @hide
+ *
+ * NOTE: Flag for {@link #setSystemUiVisibility(int)}: It help user to disable transient
+ * status bar triggered by gesture
+ */
+ public static final int SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED = 0x00002000;
2. frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
view plain copy
// monitor for system gestures
mSystemGestures = new SystemGesturesPointerEventListener(context,
new SystemGesturesPointerEventListener.Callbacks() {
@Override
public void onSwipeFromTop() {
+ if (isGestureIsolated())
+ return;
if (mStatusBar != null) {
requestTransientBars(mStatusBar);
}
}
@Override
public void onSwipeFromBottom() {
+ if (isGestureIsolated())
+ return;
if (mNavigationBar != null && mNavigationBarOnBottom) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onSwipeFromRight() {
+ if (isGestureIsolated())
+ return;
if (mNavigationBar != null && !mNavigationBarOnBottom) {
requestTransientBars(mNavigationBar);
}
}
@Override
public void onDebug() {
// no-op
}
+ private boolean isGestureIsolated() {
+ WindowState win = mFocusedWindow != null ? mFocusedWindow : mTopFullscreenOpaqueWindowState;
+ if (win != null && (win.getSystemUiVisibility() & View.SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED) != 0)
+ return true;
+ else
+ return false;
+ }
});
3. 请在修改完framework后,将测试app用setSystemUiVisibility的API加上SYSTEM_UI_FLAG_IMMERSIVE_GESTURE_ISOLATED的flag

更多文章:
hover标签属性(a:hover{ color:#00F;}是什么意思,怎么使用)
2026年5月20日 07:45
js select(js 触发select onchange事件代码)
2026年5月19日 04:00
大于等于符号是什么?怎样在键盘上打出大于等于号,小于等于号急用!
2025年10月5日 00:45
用javascript加油优惠价格(现在用什么app加油最便宜)
2025年9月3日 01:45
js split 多个分隔符(js 如何用split()方法按根据“\”(反斜杠)分割字符串)
2026年8月20日 23:30
malloc返回的是什么(用malloc和数组指针申请二维数组返回什么)
2025年8月4日 09:15
mapping file(为什么File mapping比普通文件读写效率高)
2026年4月8日 06:30
translateit翻译成中文(他们正在会议中Translate it into Mandarin,)
2025年12月16日 18:45
stroke width(javascript如何实现把界面上的点,动态的依次连接成一个封闭的图形)
2025年11月9日 19:15
朱子学研究cssci来源集刊(中文社会科学引文索引的学科分类)
2026年5月4日 04:00
plsql删除表中某一条数据(plsqldeveloper删除表需要提交吗)
2026年6月10日 03:30







