android4.2.2 设置Setting修改

这篇博客主要介绍了如何在Android 4.2.2系统中进行Setting设置修改,包括删除Fragment,辅助功能中关闭自动旋转屏幕的实现,以及电源键添加重启选项的详细步骤,涉及多个系统源代码文件的改动,并提供了不同分辨率的重启图标路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作使用到,做备份


删除fragment 

文件:Mainfest.xml   删除对应的<header   />

            setting.java     删除SETTINGS_FOR_RESTRICTED【】数组中对应的id



辅助功能里关闭自动旋转屏幕

文件:AccessibilitySettings.java, onCreate()里, flag的值设为0.

        int flag =Settings.System.getInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0);  

        Settings.System.putInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION,flag=0);


电源键添加重启选项

文件:1.frameworks/base/core/res/res/values-zh-rCN/strings.xml

            2.frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java 

            3.frameworks/base/core/java/android/view/WindowManagerPolicy.java

            4.frameworks/base/services/java/com/android/server/wm/WindowManagerService.java

            5.frameworks/base/services/java/com/android/server/power/ShutdownThread.java

            6.frameworks/base/api/current.txt
            7.frameworks/base/core/res/res/values/public.xml


1. 添加中文资源文件

2.添加item

        mItems.add(  
            new SinglePressAction(  
                    com.android.internal.R.drawable.ic_lock_reboot,  
                    R.string.global_action_reboot) {  
  
                public void onPress() {  
                    // shutdown by making sure radio and power are handled accordingly.  
                    mWindowManagerFuncs.reboot(true);  
                }  
  
                public boolean onLongPress() {  
                    return true;  
                }  
  
                public boolean showDuringKeyguard() {  
                    return true;  
                }  
  
                public boolean showBeforeProvisioning() {  
                    return true;  
                }  
            });     // add end 


3. 添加重启方法

  

  public void reboot(boolean confirm); 
 

4. 实现reboot的方法

     //add start 添加从其方法  
      public void reboot(boolean confirm) {  
          ShutdownThread.reboot(mContext,"", confirm);  
      }  

5. 重启方法线程调用实现

    static void shutdownInner(final Context context, boolean confirm) {

    final int resourceId = mRebootSafeMode     ----去掉final

            bConfirmForAnimation = confirm;  
       final int longPressBehavior = context.getResources().getInteger(  
               com.android.internal.R.integer.config_longPressOnPowerBehavior);  
       int resourceId = mRebootSafeMode                   // -----------modify ------delete  final    
           ? com.android.internal.R.string.reboot_safemode_confirm  
           : (longPressBehavior == 2  
                   ? com.android.internal.R.string.shutdown_confirm_question  
                   : com.android.internal.R.string.shutdown_confirm);  
  
       Log.d(TAG, "Notifying thread to start shutdown longPressBehavior=" + longPressBehavior);  
      
    if(mReboot) resourceId = com.android.internal.R.string.reboot_confirm;      //------------add  this line   
  
  
       if (confirm) {  
           final CloseDialogReceiver closer = new CloseDialogReceiver(context);  
           if (sConfirmDialog != null) {  
               sConfirmDialog.dismiss();  
           }  
           //if (sConfirmDialog == null) {                 //-----------------------modify this line  
               Log.d(TAG, "PowerOff dialog doesn't exist. Create it first");  
               sConfirmDialog = new AlertDialog.Builder(context)  
                   .setTitle(mRebootSafeMode  
                           ? com.android.internal.R.string.reboot_safemode_title  
                           : (mReboot?com.android.internal.R.string.reboot:com.android.internal.R.string.power_off))//modify this line .添加判断重启  
                   .setMessage(resourceId)  
                   .setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() {  
                           public void onClick(DialogInterface dialog, int which) {  
                           beginShutdownSequence(context);  
                           if (sConfirmDialog != null) {  
                           sConfirmDialog = null;  
                           }  
                           }  
                           })  
               .setNegativeButton(com.android.internal.R.string.no, new DialogInterface.OnClickListener() {  
                       public void onClick(DialogInterface dialog, int which) {  
                       synchronized (sIsStartedGuard) {  
                       sIsStarted = false;  
                       }  
                       if (sConfirmDialog != null) {  
                       sConfirmDialog = null;  
                       }  
                       }  
                       })  
               .create();  
               sConfirmDialog.setCancelable(false);//blocking back key  
               sConfirmDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);  
               /*if (!context.getResources().getBoolean( 
                 com.android.internal.R.bool.config_sf_slowBlur)) { 
                 sConfirmDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
                 }*/  
               /* To fix video+UI+blur flick issue */  
               sConfirmDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);  
          // }                                              //-------------------modify this line  
  
           closer.dialog = sConfirmDialog;  
           sConfirmDialog.setOnDismissListener(closer);  
  
           if (!sConfirmDialog.isShowing()) {  
               sConfirmDialog.show();  
           }  
       } else {  
           beginShutdownSequence(context);  
       }  
   }  
} 

6. 添加新的API接口

field public static final int ic_lock_reboot = 17301662; // 0x108009e  

7.对用到的资源进行申明

    <public type="drawable" name="ic_lock_reboot" id="0x0108009e" />  


添加重新启动的图标 分别适应  高清 高 中 低    4 种不同的分辨率 路径如下

frameworks/base/core/res/res/drawable-hdpi/ic_lock_reboot.png

frameworks/base/core/res/res/drawable-ldpi/ic_lock_reboot.png

frameworks/base/core/res/res/drawable-mdpi/ic_lock_reboot.png

/frameworks/base/core/res/res/drawable-xhdpi/ic_lock_reboot.png

图标如下:

参考:http://blog.youkuaiyun.com/wjky2014/article/details/24123533



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值