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

住房和城乡建设部网站 挂证通报网页设计培训传智教育

住房和城乡建设部网站 挂证通报,网页设计培训传智教育,建设网站去哪里备案,品牌推广的三个阶段一、Android系统重启的实现方式 1、广播方式 之前的博文介绍过这种方式《使用广播实现的Android关机及重启》#xff0c;注意应用要在源码中编译#xff0c;并且应用需要系统权限。 2、通过init.rc启动系统服务来运行sh文件 a.重启shell文件#xff08;system_reboot.sh注意应用要在源码中编译并且应用需要系统权限。 2、通过init.rc启动系统服务来运行sh文件 a.重启shell文件system_reboot.sh放在system/etc/目录下 [java] view plain copy #!/system/bin/sh    reboot   b.init.rc中加入一个Service的定义 [java] view plaincopyservice system_reboot /system/etc/system_reboot.sh    oneshot    disabled  c.启动系统服务 [java] view plaincopySystemProperties.set(ctl.start, system_reboot);   3、直接代码中执行命令行 需要取得root权限 [java] view plain copy Process proc  Runtime.getRuntime().exec(cmd);       以上三种方法可以实现重启但现在需要实现长按关机键提示对话框中有重启选项这就设计修改系统源码感觉修改源码是个很难的工作其实找到关机提示框的代码位置一切都变得很简单。 二、修改源码定制重启功能 1、跟踪长按Power键相关代码 首先要了解长按电源键弹出对话框的相关源码位置通过跟踪找到PhoneWindowManager.java中有截断长按电源键的方法继续跟踪代码找到Runnable mPowerLongPress  new Runnable()在该runnable里边调用showGlobalActionsDialog()方法便是显示长按power键弹出的关机提示对话框如果你的机器是原生态的默认提示“飞行模式”“静音”和“关机”选项。 showGlobalActionsDialog创建关机对话框的代码在GlobalActions.java里边主要代码如下 [java] view plain copy private AlertDialog createDialog() {  ……  mItems  new ArrayListAction();            // first: power off          mItems.add(              new SinglePressAction(                      com.android.internal.R.drawable.ic_lock_power_off,                      R.string.global_action_power_off) {                    public void onPress() {                      // shutdown by making sure radio and power are handled accordingly.                      ShutdownThread.shutdown(mContext, true);                  }                    public boolean showDuringKeyguard() {                      return true;                  }                    public boolean showBeforeProvisioning() {                      return true;                  }              });            // next: airplane mode          mItems.add(mAirplaneModeOn);            // last: silent mode          if (SHOW_SILENT_TOGGLE) {              mItems.add(mSilentModeAction);          }  ……     2、重启方法 跟踪源码到此处需要加入重启部分的源码也是往AlertDialog 添加多一项显示部分的代码直接造这power off即可需要加入重启逻辑的代码直接修改回调方法onPress里边上边代码粗体部分一开始我尝试了前文中提示的三种方法中的方法一和方法三均行不通后来也没再进一步排查原因估计权限问题。 本打算使用方法二再尝试一下突然想到为何不去看看关机的逻辑代码ShutdownThread.shutdown()打开ShutdownThread.java很快就发现源码里边也有reboot的实现方法如下 [java] view plain copy /**      * Request a clean shutdown, waiting for subsystems to clean up their      * state etc.  Must be called from a Looper thread in which its UI      * is shown.      *      * param context Context used to display the shutdown progress dialog.      * param reason code to pass to the kernel (e.g. recovery), or null.      * param confirm true if user confirmation is needed before shutting down.      */      public static void reboot(final Context context, String reason, boolean confirm)       ……          该方法的使用直接看注释知道reboot方法的后两个参数解释如下 reason  如果值为是null正常重启如果是recovery系统重启进入recovery mode confirm true显示关机提示框需要用户【确认】false不显示提示框直接关机 3、代码修改 a.在关机提示框中加入重启选项 弄清楚关机相关的源码直接在GlobalActions.java的createDialog方法中加入如下代码即可 [java] view plain copy ...  ext: reboot global_action_reboot    mItems.add(     new SinglePressAction(                com.android.internal.R.drawable.ic_lock_power_off,                R.string.global_action_reboot) {              public void onPress() {          // reboot             ShutdownThread.reboot(mContext,null,false);                          }              public boolean showDuringKeyguard() {                return true;            }              public boolean showBeforeProvisioning() {                return true;            }        });   b.修改重启提示框以区分关机提示框 因为提示框默认是“关机”在ShutdownThread.java的beginShutdownSequence(context)方法中代码修改如下 [java] view plain copy /*/ //修改前 ……  pd.setTitle(context.getText(com.android.internal.R.string.power_off));  pd.setMessage(context.getText(com.android.internal.R.string.shutdown_progress)); …… /*/  //修改后  ……  if(mReboot){     // reboot progress           pd.setTitle(context.getText(com.android.internal.R.string.global_action_reboot));           pd.setMessage(context.getText(com.android.internal.R.string.reboot_progress));       }else{          // shutdown progress           pd.setTitle(context.getText(com.android.internal.R.string.power_off));           pd.setMessage(context.getText(com.android.internal.R.string.shutdown_progress));       }  ……  //*/   重启功能实现了但是不能到此结束定制Android系统的重启功能添加选项和修改重启提示框时加入了“重启”和“正在重启”的字符串所以会涉及到在系统资源文件中添加新的字符串源码中资源文件涉及到的多国语言直接忽略我只在values/strings.xml和values-zh-rCN/strings.xml两个文件中加入对应的字符串 [html] view plain copy string nameglobal_action_reboot重启/string  string namereboot_progress正在重启.../string   c.最后编译 因为修改涉及到系统资源文件又涉及到policy.jar包经过多次尝试正确的编译顺序如下 步骤1.编译frameworks/base/res在out/target/product/X设备名X/system/framework/目录下生成framework-res.apk 步骤2.编译frameworks/base/在o同样目录下生成framework.jar包不能忽略不然步骤3编译报错 步骤3.编译frameworks/base/policy在同样目录下生成policy.jar包 附录 本例源码以Android 4.0.4为准2.3一样关机相关的源码路径 ics/frameworks/base/policy/src/com/android/internal/policy/impl/目录下 PhoneWindowManager.java GlobalActions.java ics/frameworks/base/core/java/com/android/internal/app/目录下 ShutdownThread.java PS:4.1.1 关机相关方法位置有些变化 源码已经把关机的接口整合到 public classWindowManagerService extends IWindowManager.Stub         implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs{...}中 不过可以直接使用 import com.android.server.pm.ShutdownThread; ShutdownThread.shutdown(mContext, true); ShutdownThread.rebootSafeMode(mContext, true); 文件路径 Android4.1.1/jb/frameworks/base/services/java/com/android/server/pm/ ShutdownThread.java Android4.1.1/jb/frameworks/base/services/java/com/android/server/wm WindowManagerService.java
http://www.dnsts.com.cn/news/106716.html

相关文章:

  • 基于php旅游网站开发源代码色盲能治好吗
  • 帝国cms7.0网站搬家换域名换空间等安装教程wordpress侧边栏加图片
  • 集团网站信息建设情况网站降权不收录
  • 上海最近新闻做百度手机网站优化点
  • 博客网站开发框架学网站建设语言
  • 前端进入网站建设公司怎么样海尔网站推广方法
  • 高端私人订制网站建设域名是什么样式的
  • 网站界面用什么软件做长沙网站建设
  • 网站建设工作室需要哪些设备视频上传网站源码
  • 珠海响应式网站建设价格网站右侧二维码
  • 手把手教网站建设即将上市的手机
  • 邹平做网站哪家好导购类网站怎么做的
  • 网站底部图片代码安徽互联网前十名公司
  • steam做皮肤网站dedecms网站地图模板
  • 温州住房建设网站怎么找平台推广
  • 一站式装修的利弊wordpress pv 性能
  • 微信如何做积分商城网站专业的徐州网站建设
  • 做产品类网站有哪些内容本机网站建设
  • 如何建设高校网站网站收录很高
  • 赣州网站建设费用行业资讯平台网站建设
  • 苏州网站建设师wordpress全站开启ssl
  • 如何看网站空间问题凡科 建设淘宝客网站
  • 建站公司怎么赚钱的员工信息管理系统源码
  • 百度在线做网站wordpress 页面如何打开评论
  • 网站建设要多少钱品牌自己做广告图片什么软件免费
  • 自己网站可以加标志吗wordpress文章首页设置
  • wordpress怎么搜索网站域名备案查询网站备案
  • 成都市建设学校网站各省住房和城乡建设厅网站
  • 常州网站搜索优化网站开发用什么编辑语言好
  • 查看网站域名医院网站制作