Android锁屏及监听锁屏事件
来源:互联网 发布:大学生网络交流平台 编辑:程序博客网 时间:2024/05/23 02:28
/** * 获得锁屏时间 毫秒 */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;}
如要设置,得添加上<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
此类作监听屏幕的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();}}
- Android锁屏及监听锁屏事件
- Android 监听锁屏/开屏事件
- Android截屏事件监听
- Android截屏事件监听
- Android截屏事件监听
- Android截屏事件监听
- Android事件监听及处理
- Android基础知识---监听事件及OnXxxListener事件
- iOS 监听锁屏/解锁事件
- android ListView 应用及事件监听方法
- android ScreenLockReceiver 锁屏监听
- Android监听屏幕锁屏
- 监听Android屏幕是否锁屏
- Android 监听屏幕锁屏,用户解锁
- Android 监听屏幕锁屏,用户解锁
- 监听Android屏幕是否锁屏
- 监听Android屏幕是否锁屏
- Android 监听屏幕锁屏,用户解锁
- 2012-半年工作总结
- 吐槽下现在的处境...
- Oracle-SQLDeveloper的使用
- css3实现带有简单动画按钮导航
- php学习 第六十一节
- Android锁屏及监听锁屏事件
- 心血来潮之测试问题
- windows下Mongodb安装
- 正则表达式
- 好书推荐(2-3岁)
- Linux Qt编程——在程序中启动其他应用、脚本
- Sftp和ftp 区别、工作原理等(汇总ing)
- CString 之 Left(),Mid(),Right()
- Hide currently present keyboard