Android 一体机研发之修改体系设置————屏幕亮度
Android 一体机研发之修改体系设置————声音
Android 一体机研发之修改体系设置————主动锁屏
修改体系设置系列篇章立刻开张了! 本章将为大家细节解说主动锁屏。
主动锁屏功能,这个可以根据用户的需求,为了减少一体机耗电以及性能,可以设置具体的锁屏时间大概设置永不锁屏等。
主动锁屏
主动锁屏,即是设置背光时间,以毫秒为单位举行设置。
- 1分 = 60秒
- 1秒 = 1000毫秒
- //15秒 15000
- //30秒 30000
- //1分钟 60000
- //2分钟 120000
- //3分钟 180000
- //4分钟 240000
- //5分钟 300000
- //6分钟 360000
- //7分钟 420000
- //8分钟 480000
- //9分钟 540000
- //10分钟 600000
- //永不 2147483647 = 35791分 = 24天
复制代码 设计思路
- AndroidManifest设置权限;
- 获取体系锁屏时间;
- 修改体系Settings 中背光时间;
3.1 判断权限
3.2 有则修改背光时间
3.3 无则引导用户授权
具体实现
AndroidManifest设置权限
- <!-- 修改系统设置 -->
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
- <uses-permission android:name="android.permission.HARDWARE_TEST" />
复制代码 获取体系锁屏时间
- int screenOffTime = getScreenOffTime();
- Log.e("当前锁屏时间 >>>", "init: " + screenOffTime);
- if (screenOffTime < 50000) {
- String second = AppUtils.msToS(screenOffTime);
- timeTxt.setText(second + "秒");
- } else {
- String minute = AppUtils.msToM(screenOffTime);
- if (minute.equals("35791")) {
- timeTxt.setText("永不");
- } else {
- timeTxt.setText(minute + "分");
- }
- }
复制代码- /**
- * 获得锁屏时间 毫秒
- */
- private int getScreenOffTime() {
- int screenOffTime = 0;
- try {
- screenOffTime = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT);
- } catch (Exception localException) {
- }
- return screenOffTime;
- }
复制代码- /**
- * 毫秒转秒
- * @param ms
- * @return
- */
- public static String msToS(int ms) {
- int seconds = ms / 1000;
- seconds = seconds % 60;
- String s = null;
- if (seconds == 0)
- seconds = 1;
- if (seconds < 10)
- s = "" + seconds;
- else
- s = "" + seconds;
- return s;
- }
- /**
- * 毫秒转分
- * @param ms
- * @return
- */
- public static String msToM(int ms) {
- int seconds = ms / 1000;
- int minutes = seconds / 60;
- seconds = seconds % 60;
- String m = null;
- if (minutes == 0 && seconds == 0)
- seconds = 1;
- if (minutes < 10)
- m = "" + minutes;
- else
- m = "" + minutes;
- return m;
- }
复制代码 修改体系Settings 中背光时间
- /**
- * 非系统签名应用,引导用户手动授权修改Settings 权限
- **/
- private int dousingCode = 2;
-
- rela.setOnClickListener(new View.OnClickListener() {
- @RequiresApi(api = Build.VERSION_CODES.M)
- @Override
- public void onClick(View v) {
- if (Settings.System.canWrite(SoundAndBrightActivity.this)) {
- //设置背光时间
- showDousingTime();
- } else {
- Toast.makeText(SoundAndBrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();
- // 打开允许修改Setting 权限的界面
- Intent intent = new Intent(
- Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
- .parse("package:"
- + getPackageName()));
- startActivityForResult(intent,
- dousingCode);
- }
- }
- });
- }
复制代码 用户已授权
- /**
- * 设置背光时间 毫秒
- */
- private void setScreenOffTime(int paramInt) {
- try {
- Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT, paramInt);
- } catch (Exception localException) {
- localException.printStackTrace();
- }
- }
复制代码 用户未授权
未授权的情况下,引导用户去授权
- Toast.makeText(SoundAndBrightActivity.this, "没有修改权限", Toast.LENGTH_SHORT).show();
- // 打开允许修改Setting 权限的界面
- Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri
- .parse("package:"
- + getPackageName()));
- startActivityForResult(intent,
- dousingCode);
复制代码 同时,检测返回结果并处理即可。
- @RequiresApi(api = Build.VERSION_CODES.M)
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == dousingCode) {
- if (Settings.System.canWrite((Context) SoundAndBrightActivity.this)) {
- //设置背光时间
- showSelectTime();
- } else {
- Toast.makeText((Context) this, "您已拒绝修系统Setting的自动熄屏权限", Toast.LENGTH_SHORT).show();
- }
- }
- }
复制代码
近来忙里偷闲,↓↓↓↓【谁家de码农陈先生】↓↓↓↓,里面定时给大家分享技能博文、火线高能资讯内容!欢迎各位老板点赞关注,你们就是我的动力源泉!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |