如何在Android平板电脑POWER按钮菜单中添加休眠功能

1、修改/frameworks/base/core/res/res/values/strings.xml

在此声明几个变量:
   <!-- 新增的屏幕休眠的item  -->
    <string name="global_action_sleep">Sleep</string>
    <!-- 新增sleep字符串 -->
    <string name="sleep">Sleep</string>
    <!-- 新增确认屏幕休眠信息 -->
    <string name="sleep_confirm">The machine screen will turn off.</string>


2、修改/frameworks/base/core/java/com/android/internal/app/ShutdownThread.java
要引用几个包
import android.os.SystemClock;
android.os.PowerManager;
//添加屏幕待机方法
    public static void goToSleep(Context context,long time){
     context.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
      final AlertDialog dialog = new AlertDialog.Builder(context)
      .setIcon(android.R.drawable.ic_dialog_alert)
      .setTitle(com.android.internal.R.string.sleep)
      .setMessage(com.android.internal.R.string.sleep_confirm)
      .setPositiveButton(com.android.internal.R.string.yes,
                                   new DialogInterface.OnClickListener() {
                                       public void onClick
                                           (DialogInterface dialog, int which){
                                           PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
                                           pm.goToSleep(SystemClock.uptimeMillis());
                                       }
                                   })
            .setNegativeButton(com.android.internal.R.string.no, null)
            .create();
      dialog.getWindow().setType
            (WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
        dialog.getWindow().addFlags
            (WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
        dialog.show();
     
      }

    
3、修改 /frameworks/policies/base/mid/com/android/internal/policy/impl/GlobalActions.java
找到mItems = Lists.newArrayList,原始代码中定义了两个SinglePressAction,即为power按钮的菜单项,这时要在里面
增加一个SinglePressAction实现屏幕休眠功能的按钮,仿照原始代码
new SinglePressAction(com.android.internal.R.drawable.ic_lock_power_off,
                        R.string.global_action_sleep){
                 
                 public void onPress(){
                  ShutdownThread.goToSleep(mContext,SystemClock.uptimeMillis());
                  
                 }
                 
                 public boolean showDuringKeyguard(){
                  return true;
                 }
                 
                 public boolean showBeforeProvisioning(){
                  return true;
                 }
                 
                }

修改后重新编译,耐心等待后,在android-x86平台的平板电脑上测试可以实现电脑的休眠功能

注:转载本blog请注明http://blog.sina.com.cn/hylinblog

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值