Android 一体机研发之修改系统设置————屏幕亮度

Android 一体机研发之修改系统设置————声音

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

修改系统设置系列篇章马上开张了! 本章将为大家细节讲解自动锁屏。

自动锁屏功能,这个可以根据用户的需求,为了减少一体机耗电以及性能,可以设置具体的锁屏时间或者设置永不锁屏等。

自动锁屏

自动锁屏,即是设置背光时间,以毫秒为单位进行设置。

1= 601= 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天

设计思路

  1. AndroidManifest设置权限;

  2. 获取系统锁屏时间;

  3. 修改系统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;elses = "" + 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;elsem = "" + minutes;return m;}

修改系统Settings 中背光时间
/** * 非系统签名应用,引导用户手动授权修改Settings 权限 **/private int dousingCode = 2;rela.setOnClickListener(new View.OnClickListener() {(api = Build.VERSION_CODES.M)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);

同时,检测返回结果并处理即可。

(api = Build.VERSION_CODES.M)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码农陈先生】↓↓↓↓,里面定时给大家分享技术博文、前方高能资讯内容!欢迎各位老板点赞关注,你们就是我的动力源泉!