/** * 获得锁屏时间 毫秒 */private int getScreenOffTime() {int screenOffTime = 0;try {screenOffTime = Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT);} catch (Exception e) {Log.e("albert988", e.toString());}return screenOffTime ;}

调用系统的设置,获取到当前设置的锁屏时间,单位为毫秒


/** * 设置锁屏时间 */private boolean setScreenOffTime(int paramInt){try {// 写入系统设置中Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_OFF_TIMEOUT, paramInt);} catch (Exception e) {Log.e("albert988", e.toString());return false;}return true;}

如要设置,得添加上


 此类作监听屏幕的ON和OFF状态事件
 构造时启动ScreenBroadcastReceiver来截取屏幕的广播
 当结束时别忘了调用stopScreenStateUpdate来取消注册广播 

/** * 监听屏幕ON和OFF状态 * * @author hejinyuan * @2012 * */public class ScreenObserver{private static String TAG = "ScreenObserver";private Context mContext;private ScreenBroadcastReceiver mScreenReceiver;    private ScreenStateListener mScreenStateListener;    private static Method mReflectScreenState;    public ScreenObserver(Context context){mContext = context;mScreenReceiver = new ScreenBroadcastReceiver();try {mReflectScreenState = PowerManager.class.getMethod("isScreenOn",new Class[] {});} catch (NoSuchMethodException nsme) {Log.d(TAG, "API < 7," + nsme);}}/**     * screen状态广播接收者     */    private class ScreenBroadcastReceiver extends BroadcastReceiver{    @Override    public void onReceive(Context context, Intent intent) {    if(Intent.ACTION_SCREEN_ON.equals(intent.getAction())){    mScreenStateListener.onScreenOn();    }else if(Intent.ACTION_SCREEN_OFF.equals(intent.getAction())){    mScreenStateListener.onScreenOff();    }    }    }/** * 请求screen状态更新 */public void requestScreenStateUpdate(ScreenStateListener listener) {mScreenStateListener = listener;startScreenBroadcastReceiver();firstGetScreenState();}/** * 第一次请求screen状态 */private void firstGetScreenState(){PowerManager manager = (PowerManager) mContext.getSystemService(Activity.POWER_SERVICE);if (isScreenOn(manager)) {if (mScreenStateListener != null) {mScreenStateListener.onScreenOn();}} else {if (mScreenStateListener != null) {mScreenStateListener.onScreenOff();}}}/** * 停止screen状态更新 */public void stopScreenStateUpdate(){mContext.unregisterReceiver(mScreenReceiver);}/** * 启动screen状态广播接收器 */    private void startScreenBroadcastReceiver(){    IntentFilter filter = new IntentFilter();    filter.addAction(Intent.ACTION_SCREEN_ON);    filter.addAction(Intent.ACTION_SCREEN_OFF);    mContext.registerReceiver(mScreenReceiver, filter);    }    /**     * screen是否打开状态     */private static boolean isScreenOn(PowerManager pm) {boolean screenState;try {screenState = (Boolean) mReflectScreenState.invoke(pm);} catch (Exception e) {screenState = false;}return screenState;}// 外部调用接口public interface ScreenStateListener {public void onScreenOn();public void onScreenOff();}}



更多相关文章

  1. Android(安卓)OpenGL之二图像旋转实例
  2. Linux 国内源、Android(安卓)SDK更新代理/镜像
  3. Android(安卓)自定义滚动视图
  4. android 状态栏与标题栏一体化
  5. Android下进行 Facebook 分享
  6. Android(安卓)图片缩放实例详解
  7. Android(安卓)Retrofit 笔记之一使用拦截器设置缓存
  8. Android中判断网络连接是否可用及监控网络状态
  9. android中去掉标题栏和状态栏

随机推荐

  1. timestampdiff返回正确但负面的分钟
  2. 腾讯云数据库团队:GreenPlum简单性能测试
  3. CentOS使用MySQL的详细步骤,及C API编程
  4. MySQL中mysqldump导出数据的使用
  5. 现在开发用的都是PDO还是Mysqli
  6. 如何在php中测量mysql时间,sql查询的时间
  7. 【错误】:MySql Host is blocked because
  8. MariaDB 和 MySQL 全面对比:选择数据库需
  9. mysql管理之安全机制
  10. 在社交新闻网站上处理上/下投票