国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 6.0 Settings中添加虛擬鍵開關(guān)

這篇具有很好參考價值的文章主要介紹了Android 6.0 Settings中添加虛擬鍵開關(guān)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  1. 添加系統(tǒng)默認鍵值
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -212,4 +212,7 @@
 
     <!-- Default for Settings.Secure.NFC_PAYMENT_COMPONENT -->
     <string name="def_nfc_payment_component"></string>
+    
+    <!--mh.modify 20190602 navigationbar switch.-->
+    <integer name="switch_navigation_bar">0</integer>
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2646,6 +2646,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
 
             loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED,
                     R.bool.def_device_provisioned);
+                    
+            //mh.mmi add navbar 20190602
+            loadIntegerSetting(stmt, "switch_navigation_bar",R.integer.switch_navigation_bar);
  1. 設(shè)置中添加開關(guān)
+++ b/packages/apps/Settings/res/values-zh-rCN/strings.xml
@@ -2880,4 +2880,6 @@
     <string name="write_settings_description" msgid="6868293938839954623">"此權(quán)限允許應(yīng)用修改系統(tǒng)設(shè)置。"</string>
     <string name="write_settings_on" msgid="8230580416068832239">"允許"</string>
     <string name="write_settings_off" msgid="5156104383386336233">"不允許"</string>  
+    <string name="switch_navigationbarview">虛擬鍵開關(guān)</string>
 </resources>
diff --git a/packages/apps/Settings/res/values/strings.xml b/packages/apps/Settings/res/values/strings.xml
old mode 100644
new mode 100755
index ad5ca8cbf3..d4474ab5bc

+++ b/packages/apps/Settings/res/values/strings.xml
@@ -6998,4 +6998,6 @@
     <string name="write_settings_on">Yes</string>
     <!-- Summary of app not allowed to write system settings [CHAR LIMIT=45] -->
     <string name="write_settings_off">No</string> 
+    <string name="switch_navigationbarview">Navigation key switch</string>
+++ b/packages/apps/Settings/res/xml/accessibility_settings.xml
@@ -36,6 +36,12 @@
             android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
             android:key="screen_magnification_preference_screen"
             android:title="@string/accessibility_screen_magnification_title"/>
+            
+        <!-- mh.mmi -->
+        <SwitchPreference
+            android:key="switch_navigationbarview"
+            android:title="@string/switch_navigationbarview"
+            android:persistent="false"/>
+++ b/packages/apps/Settings/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -187,6 +187,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
     private PreferenceCategory mServicesCategory;
     private PreferenceCategory mSystemsCategory;
 
+    private SwitchPreference mToggleNavBarPreference;//mh.mmi
     private SwitchPreference mToggleLargeTextPreference;
     private SwitchPreference mToggleHighTextContrastPreference;
     private SwitchPreference mTogglePowerButtonEndsCallPreference;
@@ -304,9 +305,20 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
             handleDisplayMagnificationPreferenceScreenClick();
             return true;
         }
+        //mh.mmi add navbar switch. 20190602
+        else if (mToggleNavBarPreference == preference) {
+            handleToggleNavBarPreferenceClick();
+        }
         return super.onPreferenceTreeClick(preferenceScreen, preference);
     }
 
+    ///mh.mmi add navbar switch. 20190602
+    private void handleToggleNavBarPreferenceClick() {
+        Settings.Global.putInt(getContentResolver(),
+                "switch_navigation_bar",
+                mToggleNavBarPreference.isChecked() ? 1 : 0);
+    }
+
     private void handleToggleLargeTextPreferenceClick() {
         /** M: MTK fix fonts problem @{ */
         float fontScale = LARGE_FONT_SCALE;
@@ -380,6 +392,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
         mServicesCategory = (PreferenceCategory) findPreference(SERVICES_CATEGORY);
         mSystemsCategory = (PreferenceCategory) findPreference(SYSTEM_CATEGORY);
 
+        // mh.mmi add navbar switch. 20190602
+        mToggleNavBarPreference =
+                (SwitchPreference) findPreference("switch_navigationbarview");
+        
         // Large text.
         mToggleLargeTextPreference =
                 (SwitchPreference) findPreference(TOGGLE_LARGE_TEXT_PREFERENCE);
@@ -580,6 +596,10 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
             }
             updateFontScale = mLargeFontScaleTablet;
         }
+        
+        ///mh.mmi add navbar switch. 20190602
+        mToggleNavBarPreference.setChecked(Settings.Global.getInt(getContentResolver(),
+                "switch_navigation_bar", 0) == 1);
 
         mToggleLargeTextPreference.setChecked(mCurConfig.fontScale == updateFontScale);
         /** @} */
  1. 監(jiān)聽數(shù)據(jù)庫變化
+++ b/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -668,6 +668,43 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
 
         mScreenPinningRequest = new ScreenPinningRequest(mContext);
     }
+    
+    ///mh.modify start 2019.6.2
+    class NavBarChangeContentObserver extends ContentObserver{
+ 
+        public NavBarChangeContentObserver() {
+            super(new Handler());
+        }
+ 
+        @Override
+        public void onChange(boolean selfChange) {
+            super.onChange(selfChange);
+            boolean isShownav = Settings.Global.getInt(mContext.getContentResolver(), "switch_navigation_bar", 0) != 0;
+            android.util.Log.d("mh.log", "isShownav:"+isShownav);
+            if (isShownav) {
+                if (mNavigationBarView == null) {
+                    addNarBar();
+                }
+                if (mNavigationBarView != null) {
+                    checkBarMode(MODE_TRANSLUCENT, mNavigationBarWindowState, mNavigationBarView.getBarTransitions(), false);
+                }
+            } else {
+                if (mNavigationBarView != null) {
+                    mWindowManager.removeView(mNavigationBarView);
+                    mNavigationBarView = null;
+                }
+            }
+        }
+    }
+    private void addNarBar() {
+        if (mNavigationBarView == null) {
+            mNavigationBarView = (NavigationBarView) View.inflate(mContext, R.layout.navigation_bar, null);
+            mNavigationBarView.setDisabledFlags(mDisabled1);
+            mNavigationBarView.setBar(this);
+            prepareNavigationBarView();
+        }
+        mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
+    }
+    
+    ///mh.modify end 2019.6.2

@@ -1246,7 +1248,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     // For small-screen devices (read: phones) that lack hardware navigation buttons
     private void addNavigationBar() {
         if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + mNavigationBarView);
-        if (mNavigationBarView == null) return;
+        if (mNavigationBarView == null) {
+            Settings.Global.putInt(mContext.getContentResolver(), "switch_navigation_bar", 0);
+            return;
+        }
 
         prepareNavigationBarView();
 
     // ================================================================================
     // Constructing the view
@@ -698,6 +735,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
 
         mStatusBarView = (PhoneStatusBarView) mStatusBarWindow.findViewById(R.id.status_bar);
         mStatusBarView.setBar(this);
              
+        ///mh.mmi add navbar 20190602
+        NavBarChangeContentObserver mNavContentObserver = new NavBarChangeContentObserver();
+        mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor("switch_navigation_bar"),true,mNavContentObserver);
 
         PanelHolder holder = (PanelHolder) mStatusBarWindow.findViewById(R.id.panel_holder);
         mStatusBarView.setPanelHolder(holder);

文章來源地址http://www.zghlxwxcb.cn/news/detail-683489.html

到了這里,關(guān)于Android 6.0 Settings中添加虛擬鍵開關(guān)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • MTK Android P Sensor架構(gòu)(一)

    MTK Android P Sensor架構(gòu)(一)

    本來如果只是給傳感器寫個驅(qū)動并提供能讀取溫濕度數(shù)據(jù)的節(jié)點,是一件比較輕松的事情,但是最近上層應(yīng)用的同事要求我們按照安卓標準的流程來,這樣他們就能通過注冊一個服務(wù)直接讀取傳感器事件數(shù)據(jù)了。這樣做的好處就是第三方的應(yīng)用也能正常讀取溫濕度的數(shù)據(jù)并展

    2024年02月05日
    瀏覽(19)
  • Android Settings解析

    Android Settings解析

    Android Settings 系列文章: Android Settings解析 SettingsIntelligence SettingsProvider 首語 Android設(shè)置應(yīng)用是Android系統(tǒng)中一個非常重要的系統(tǒng)應(yīng)用,它允許用戶調(diào)整和設(shè)置系統(tǒng)的各種參數(shù)和功能(系統(tǒng)設(shè)置/自定義設(shè)置/控制應(yīng)用權(quán)限/開發(fā)者選項/系統(tǒng)信息等),使用戶獲得更好的使用體驗。

    2024年01月21日
    瀏覽(19)
  • MTK Android設(shè)置setprop的selinux權(quán)限

    自定義了個SystemProperties的屬性,需要在system應(yīng)用中修改它,介紹MTK及展銳的設(shè)置方法,可擴展到其他平臺. 比如代碼中要這么設(shè)置 默認會引發(fā)selinux無權(quán)限的報錯. 修改方法是在對應(yīng)的.te中添加對應(yīng)的屬性,注意不同的平臺屬性及修改目錄可能不一樣,比如展銳的與MTK的就

    2024年02月11日
    瀏覽(28)
  • Android8.1 MTK平臺 修改藍牙默認名稱

    的默認藍牙名稱為 Android Bluedroid 通過搜索你會找到如下文件 device/generic/common/bluetooth/bdroid_buildcfg.h 如果單一情況你修改此處即可,但如果多臺燒錄此 room 的設(shè)備同時打開藍牙,你搜索到的藍牙名稱都為 BTM_DEF_LOCAL_NAME 對應(yīng)的值 為了避免此種情況,我們采用另一種修改方式 將

    2024年04月13日
    瀏覽(24)
  • Android 10.0 Settings 加載流程

    一、系統(tǒng)設(shè)置首頁 代碼路徑:packages/app/Settings/ 1 主界面加載: Settings的主界面是Settings.java,但是從Settings.java來看,除了大量的靜態(tài)類繼承SettingsActivity,就無其他有效信息了。但看其xml定義可以發(fā)現(xiàn)targetActivity屬性,實質(zhì)應(yīng)是SettingsHomepageActivity.java。 先看其xml配置: SettingsH

    2024年02月05日
    瀏覽(28)
  • Settings中電池選項-Android13

    Settings中電池選項-Android13

    [電池]Android 9.0 電池未充電與充電字符串提示信息[通俗易懂] packages/apps/Settings/src/com/android/settings/fuelgauge/PowerUsageSummary.java packages/apps/Settings/res/xml/power_usage_summary.xml packages/apps/Settings/src/com/android/settings/fuelgauge/BatteryUtils.java packages/apps/Settings/src/com/android/settings/fuelgauge/BatteryInf

    2024年01月24日
    瀏覽(20)
  • MTK Android 14 鎖屏通知欄與相機預(yù)覽界面重疊

    MTK Android 14 鎖屏通知欄與相機預(yù)覽界面重疊

    設(shè)置為滑動解鎖 支持雙擊power按鍵跳轉(zhuǎn)相機功能 反復(fù)亮滅屏,并通過雙擊power按鍵喚醒相機就有幾率觸發(fā)此問題 keyguard壁紙圖層消失,顯示出了底下的camera預(yù)覽界面,且當(dāng)前keyguard時序錯亂,解鎖流程異常 因為是靜態(tài)壁紙,所以最早的考慮可能和Systemui的LockscreenWallpaper.java 和

    2024年02月22日
    瀏覽(25)
  • Android 12.0系統(tǒng)Settings主頁去掉搜索框

    在12.0定制化開發(fā)中,在系統(tǒng)原生設(shè)置中主頁的搜索框是要求去掉的,不需要搜索功能,所以首選看下布局文件 看下搜索框是哪個布局,然后隱藏到布局,達到實現(xiàn)功能的目的

    2024年02月09日
    瀏覽(50)
  • Android Settings中Preference的理解以及使用

    Android Settings中Preference的理解以及使用

    ? ? ? Preference 是Android App 中重要的控件之一,Settings 模塊大部分都是通過 Preference 實現(xiàn) ? ? ? ? Preference 可以自動顯示我們上次設(shè)置的數(shù)據(jù),Android提供preference這個鍵值對的方式來處理這種情況,自動保存這些數(shù)據(jù),并立時生效,無需用戶自己保存操作,只需要在xml中定義對

    2023年04月20日
    瀏覽(17)
  • Android 11.0 MTK Camera2 設(shè)置默認拍照尺寸功能實現(xiàn)

    Android 11.0 MTK Camera2 設(shè)置默認拍照尺寸功能實現(xiàn)

    在11.0的系統(tǒng)rom定制化開發(fā)中,在mtk平臺的camera2關(guān)于拍照的一些功能修改中,在一些平臺默認需要設(shè)置最大的分辨率 來作為拍照的分辨率,所以就需要了解拍照尺寸設(shè)置流程,然后來實現(xiàn)相關(guān)的功能 如圖: Camera API中主要涉及以下幾個關(guān)鍵類 CameraManager:相機的實際管理者,調(diào)

    2024年01月21日
    瀏覽(126)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包