Android 一体机研发之修改体系设置————主动锁屏

慢吞云雾缓吐愁  金牌会员 | 2024-6-22 01:33:59 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 679|帖子 679|积分 2037


Android 一体机研发之修改体系设置————屏幕亮度
Android 一体机研发之修改体系设置————声音
Android 一体机研发之修改体系设置————主动锁屏
修改体系设置系列篇章立刻开张了! 本章将为大家细节解说主动锁屏。
主动锁屏功能,这个可以根据用户的需求,为了减少一体机耗电以及性能,可以设置具体的锁屏时间大概设置永不锁屏等。
   
  主动锁屏

主动锁屏,即是设置背光时间,以毫秒为单位举行设置。
  1. 1分 = 60秒
  2. 1秒 = 1000毫秒
  3. //15秒   15000
  4. //30秒   30000
  5. //1分钟  60000
  6. //2分钟  120000
  7. //3分钟  180000
  8. //4分钟  240000
  9. //5分钟  300000
  10. //6分钟  360000
  11. //7分钟  420000
  12. //8分钟  480000
  13. //9分钟  540000
  14. //10分钟 600000
  15. //永不  2147483647 = 35791分 = 24天
复制代码
设计思路


  • AndroidManifest设置权限;
  • 获取体系锁屏时间;
  • 修改体系Settings 中背光时间;
    3.1 判断权限
    3.2 有则修改背光时间
    3.3 无则引导用户授权
具体实现

AndroidManifest设置权限

  1.         <!-- 修改系统设置 -->
  2.     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  3.     <uses-permission android:name="android.permission.READ_CONTACTS" />
  4.     <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
  5.     <uses-permission android:name="android.permission.HARDWARE_TEST" />
复制代码

获取体系锁屏时间

  1.         int screenOffTime = getScreenOffTime();
  2.     Log.e("当前锁屏时间 >>>", "init: " + screenOffTime);
  3.     if (screenOffTime < 50000) {
  4.             String second = AppUtils.msToS(screenOffTime);
  5.             timeTxt.setText(second + "秒");
  6.     } else {
  7.         String minute = AppUtils.msToM(screenOffTime);
  8.         if (minute.equals("35791")) {
  9.             timeTxt.setText("永不");
  10.        } else {
  11.             timeTxt.setText(minute + "分");
  12.       }
  13.    }
复制代码
  1.         /**
  2.      * 获得锁屏时间  毫秒
  3.      */
  4.     private int getScreenOffTime() {
  5.         int screenOffTime = 0;
  6.         try {
  7.             screenOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
  8.         } catch (Exception localException) {
  9.         }
  10.         return screenOffTime;
  11.     }
复制代码
  1.         /**
  2.      * 毫秒转秒
  3.      * @param ms
  4.      * @return
  5.      */
  6.     public static String msToS(int ms) {
  7.         int seconds = ms / 1000;
  8.         seconds = seconds % 60;
  9.         String s = null;
  10.         if (seconds == 0)
  11.             seconds = 1;
  12.         if (seconds < 10)
  13.             s = "" + seconds;
  14.         else
  15.             s = "" + seconds;
  16.         return s;
  17.     }
  18.     /**
  19.      * 毫秒转分
  20.      * @param ms
  21.      * @return
  22.      */
  23.     public static String msToM(int ms) {
  24.         int seconds = ms / 1000;
  25.         int minutes = seconds / 60;
  26.         seconds = seconds % 60;
  27.         String m = null;
  28.         if (minutes == 0 && seconds == 0)
  29.             seconds = 1;
  30.         if (minutes < 10)
  31.             m = "" + minutes;
  32.         else
  33.             m = "" + minutes;
  34.         return m;
  35.     }
复制代码

修改体系Settings 中背光时间

  1.         /**
  2.      * 非系统签名应用,引导用户手动授权修改Settings 权限
  3.      **/
  4.     private int dousingCode = 2;
  5.    
  6.         rela.setOnClickListener(new View.OnClickListener() {
  7.             @RequiresApi(api = Build.VERSION_CODES.M)
  8.             @Override
  9.             public void onClick(View v) {
  10.                 if (Settings.System.canWrite(SoundAndBrightActivity.this)) {
  11.                     //设置背光时间
  12.                     showDousingTime();
  13.                 } else {
  14.                     Toast.makeText(SoundAndBrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();
  15.                     // 打开允许修改Setting 权限的界面
  16.                     Intent intent = new Intent(
  17.                             Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
  18.                             .parse("package:"
  19.                                     + getPackageName()));
  20.                     startActivityForResult(intent,
  21.                             dousingCode);
  22.                 }
  23.             }
  24.         });
  25.     }
复制代码

用户已授权

  1.         /**
  2.      * 设置背光时间  毫秒
  3.      */
  4.     private void setScreenOffTime(int paramInt) {
  5.         try {
  6.             Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, paramInt);
  7.         } catch (Exception localException) {
  8.             localException.printStackTrace();
  9.         }
  10.     }
复制代码

用户未授权

未授权的情况下,引导用户去授权
  1. Toast.makeText(SoundAndBrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();
  2. // 打开允许修改Setting 权限的界面
  3. Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
  4.                             .parse("package:"
  5.                                     + getPackageName()));
  6.                     startActivityForResult(intent,
  7.                             dousingCode);
复制代码
同时,检测返回结果并处理即可。
  1.         @RequiresApi(api = Build.VERSION_CODES.M)
  2.     @Override
  3.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  4.         super.onActivityResult(requestCode, resultCode, data);
  5.         if (requestCode == dousingCode) {
  6.             if (Settings.System.canWrite((Context) SoundAndBrightActivity.this)) {
  7.                  //设置背光时间
  8.                 showSelectTime();
  9.             } else {
  10.                 Toast.makeText((Context) this, "您已拒绝修系统Setting的自动熄屏权限", Toast.LENGTH_SHORT).show();
  11.             }
  12.         }
  13.     }
复制代码


近来忙里偷闲,↓↓↓↓【谁家de码农陈先生】↓↓↓↓,里面定时给大家分享技能博文、火线高能资讯内容!欢迎各位老板点赞关注,你们就是我的动力源泉!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表