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

阿里巴巴国际站运营模式今日头条新闻最新疫情

阿里巴巴国际站运营模式,今日头条新闻最新疫情,网站建设在哪块做,平面设计有哪些网站android整机测试,需要测试按键。 一般的键好按,好测试。如:音量加 ,音量- 。 但是,有些按键就不好测了。譬如:电源键(Power),Home键,Menu键,Bac…

android整机测试,需要测试按键。

一般的键好按,好测试。如:音量加+ ,音量- 。

但是,有些按键就不好测了。譬如:电源键(Power),Home键,Menu键,Back键,

以上按键,除了Back可以监听捕捉,其他按键都不好测。

还有特殊按键:F1,F2键。

需要找一个根本的解决方案。

只能从根本上解决这个问题。需要从源码入手。

当进入测试界面的时候,发送一个Intent告诉系统,开始进行按键测试。当离开界面的时候,告诉系统按键测试结束。

具体操作的代码在:

QSSI.13/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

public class PhoneWindowManager implements WindowManagerPolicy {// register for multiuser-relevant broadcastsfilter = new IntentFilter(Intent.ACTION_USER_SWITCHED);
+        filter.addAction(CIT_TEST_ON);
+        filter.addAction(CIT_TEST_OFF);context.registerReceiver(mMultiuserReceiver, filter);mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
@@ -2795,6 +2797,35 @@ public class PhoneWindowManager implements WindowManagerPolicy {+ repeatCount + " keyguardOn=" + keyguardOn + " canceled=" + canceled);}+        if (citTestIn) {
+            switch (keyCode) {
+                case KeyEvent.KEYCODE_HOME:
+                    sendBroadcastIntent(ACTION_HOME);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_MENU:
+                    sendBroadcastIntent(ACTION_MENU);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_POWER:
+                    sendBroadcastIntent(ACTION_POWER);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_BACK:
+                    sendBroadcastIntent(ACTION_BACK);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_KEYF1:
+                    sendBroadcastIntent(ACTION_F1);
+                    if (DEBUG_INPUT) {
+                        Slog.d(TAG, "###########KEYF1###########keyCode: " + keyCode);
+                    }
+                    return key_consumed;
+                case KeyEvent.KEYCODE_KEYF2:
+                    sendBroadcastIntent(ACTION_F2);
+                    if (DEBUG_INPUT) {
+                        Slog.d(TAG, "###########KEYF2###########keyCode: " + keyCode);
+                    }
+                    return key_consumed;
+            }
+        }
+if (mKeyCombinationManager.isKeyConsumed(event)) {return key_consumed;}
@@ -2857,6 +2888,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {// Hijack modified menu keys for debugging featuresfinal int chordBug = KeyEvent.META_SHIFT_ON;+                if (citTestIn) {
+                    sendBroadcastIntent(ACTION_MENU);
+                }if (down && repeatCount == 0) {if (mEnableShiftMenuBugReports && (metaState & chordBug) == chordBug) {Intent intent = new Intent(Intent.ACTION_BUG_REPORT);
@@ -3773,6 +3807,39 @@ public class PhoneWindowManager implements WindowManagerPolicy {final boolean down = event.getAction() == KeyEvent.ACTION_DOWN;boolean isWakeKey = (policyFlags & WindowManagerPolicy.FLAG_WAKE) != 0|| event.isWakeKey();
+        int key_consumed = 0;
+        if (DEBUG_INPUT) {
+            Slog.d(TAG, "######################keyCode: " + keyCode);
+        }
+        if (citTestIn) {
+            switch (keyCode) {
+                case KeyEvent.KEYCODE_HOME:
+                    sendBroadcastIntent(ACTION_HOME);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_MENU:
+                case 187:
+                    sendBroadcastIntent(ACTION_MENU);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_POWER:
+                    sendBroadcastIntent(ACTION_POWER);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_BACK:
+                    sendBroadcastIntent(ACTION_BACK);
+                    return key_consumed;
+                case KeyEvent.KEYCODE_KEYF1:
+                    sendBroadcastIntent(ACTION_F1);
+                    if (DEBUG_INPUT) {
+                        Slog.d(TAG, "###########KEYF1###########keyCode: " + keyCode);
+                    }
+                    return key_consumed;
+                case KeyEvent.KEYCODE_KEYF2:
+                    sendBroadcastIntent(ACTION_F2);
+                    if (DEBUG_INPUT) {
+                        Slog.d(TAG, "###########KEYF2###########keyCode: " + keyCode);
+                    }
+                    return key_consumed;
+            }
+        }if (!mSystemBooted) {// If we have not yet booted, don't let key events do anything.
@@ -4592,6 +4659,16 @@ public class PhoneWindowManager implements WindowManagerPolicy {}}};
+    private boolean citTestIn = false;
+    private String CIT_TEST_ON = "com.aaabbb.citteston";
+    private String CIT_TEST_OFF = "com.aaabbb.cittestoff";
+
+    private String ACTION_HOME = "com.aaabbb.home";
+    private String ACTION_BACK = "com.aaabbb.back";
+    private String ACTION_MENU = "com.aaabbb.menu";
+    private String ACTION_POWER = "com.aaabbb.power";
+    private String ACTION_F1 = "com.aaabbb.f1";
+    private String ACTION_F2 = "com.aaabbb.f2";BroadcastReceiver mMultiuserReceiver = new BroadcastReceiver() {@Override
@@ -4604,10 +4681,19 @@ public class PhoneWindowManager implements WindowManagerPolicy {mSettingsObserver.onChange(false);mDefaultDisplayRotation.onUserSwitch();mWindowManagerFuncs.onUserSwitched();
+            } else if (intent.getAction().equals(CIT_TEST_ON)) {
+                citTestIn = true;
+            } else if (intent.getAction().equals(CIT_TEST_OFF)) {
+                citTestIn = false;}}};+    private void sendBroadcastIntent(String action) {
+        Intent intent = new Intent(action);
+        mContext.sendBroadcast(intent);
+    }
+// Called on the PowerManager's Notifier thread.@Overridepublic void startedGoingToSleep(@PowerManager.GoToSleepReason int pmSleepReason) {

测试App需要注册一个BroadcastReceiver ,来处理接受到的按键广播。

PhoneWindowManager 要2个地方都要修改,才能覆盖所有的按键要求。menu处理起来复杂些。

http://www.dtcms.com/wzjs/195147.html

相关文章:

  • 湘潭市高新建设局网站百度知识营销
  • 欧美风格网站搜索引擎优化的技巧有哪些
  • wordpress 清新主题seo网站的优化流程
  • 网站推广服务怎么做最好用的搜索神器
  • 政府网站建设申论百度推广搜索排名
  • 雅安做网站的公司什么叫外链
  • 做众筹网站要什么资质杭州网站设计制作
  • 网站开发费属于研发费用吗新品推广活动方案
  • 可以做公众号的网站吗搜索引擎提交入口大全
  • 网站开发写好了怎么发布九易建网站的建站流程
  • 自建电商网站有哪些宁波关键词优化品牌
  • 织梦网站数据下载百度竞价被换着ip点击
  • 中国工程建设网站软文营销的写作技巧有哪些
  • 做网站好网站开发教程
  • 网站系统建设思想如何写如何开网站详细步骤
  • wordpress 文章分类idseo运营推广
  • 钦州网站建设现在感染症状有哪些
  • 如何制作网站模板搜索引擎优化是什么?
  • idea做网站整站优化排名
  • 网站建设类型报价表百度云资源搜索入口
  • 郑州制作网站ihanshi武汉做搜索引擎推广的公司
  • 做网站的人 优帮云湖南seo优化报价
  • 响水做网站需要多少钱百度推广助手app
  • 工程项目建设程序外链seo招聘
  • 做网站的资金来源深圳网站建设专业乐云seo
  • 网站的建设公司哪家好营销策划书案例
  • 网站建设门户cilimao磁力猫最新版地址
  • 十八把网站做扇子seo是什么姓氏
  • 廊坊住房和城乡建设厅网站百度下载正版
  • 网站 视觉冲击谷歌seo排名技巧