Android 一体机研发之修改体系设置————主动锁屏
https://img-blog.csdnimg.cn/20a67d10c13248d48622971a7d42c487.png#pic_centerAndroid 一体机研发之修改体系设置————屏幕亮度
Android 一体机研发之修改体系设置————声音
Android 一体机研发之修改体系设置————主动锁屏
修改体系设置系列篇章立刻开张了! 本章将为大家细节解说主动锁屏。
主动锁屏功能,这个可以根据用户的需求,为了减少一体机耗电以及性能,可以设置具体的锁屏时间大概设置永不锁屏等。
https://img-blog.csdnimg.cn/43f898a02c37498cad73ebd4fa0ca103.gif主动锁屏
主动锁屏,即是设置背光时间,以毫秒为单位举行设置。
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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]