当前位置:编程学习 > wap >>

待机后定时开启 (亮屏,自动解锁)程序实现?可以不?

RT --------------------编程问答-------------------- 可以啊,想要的都可以 --------------------编程问答-------------------- 跟没说一样。。。。
怎么实现?? --------------------编程问答-------------------- 有人说说 --------------------编程问答--------------------  requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
        //设置屏幕不休眠
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,  WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); --------------------编程问答-------------------- 没那么简单。。。。。。。。。。。。。。 --------------------编程问答--------------------
引用 4 楼 wsl1598763 的回复:
requestWindowFeature(Window.FEATURE_NO_TITLE);
  this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
  //设置屏幕不休眠
  getWindow().……
这样应该可以吧 --------------------编程问答--------------------
引用 6 楼 aomandeshangxiao 的回复:
引用 4 楼 wsl1598763 的回复:
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
//设置……


。。。都是网上乱转惹的乱。。。。。。。。
没理解我的意思。。。。。。。。。。 --------------------编程问答-------------------- 你参考下这个例子:http://www.eoeandroid.com/thread-58403-1-1.html --------------------编程问答-------------------- 这段代码可以实现亮屏,定时可以通过继承android.os.CountDownTimer实现


import android.content.Context;
import android.content.SharedPreferences;
import android.os.PowerManager;
import android.preference.PreferenceManager;

public class ManageWakeLock {
  private static PowerManager.WakeLock myWakeLock;

  // private static int TIMEOUT_SECS = 10;

  public static void acquire(Context context) {
    if (myWakeLock != null) {
      // myWakeLock.release();
      return;
    }

    PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);

    boolean wakeScreen = true;

    // int flags = PowerManager.ON_AFTER_RELEASE;
int flags = 0;
if (wakeScreen) {
ManageKeyguard.disableKeyguard(context);
flags = PowerManager.SCREEN_BRIGHT_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP;
} else {
flags = PowerManager.PARTIAL_WAKE_LOCK;
}

    myWakeLock = pm.newWakeLock(flags, Log.LOGTAG);
    if (Log.DEBUG) Log.v("Wakelock acquired");
    // myWakeLock.acquire(TIMEOUT_SECS * 1000);
    myWakeLock.acquire();
  }

  static void release() {
    if (myWakeLock != null) {
      if (Log.DEBUG) Log.v("Wakelock released");
      myWakeLock.release();
      myWakeLock = null;
    }
  }
}
--------------------编程问答-------------------- 定时的话网上例子比较多。主要是用AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
然后定义自己的PendingIntent:
Intent intent = new Intent(AlarmTest.this, MyAlarmBroadCast.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);
接着调用set方法来设置到时间后触发intent里的广播接收:
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

然后就是唤醒屏幕和解锁键盘了,WalkLock - 顾名思义 唤醒锁 点亮屏幕用的,KeyguardLock - 顾名思义 键盘锁 解锁键盘用的,唤醒屏幕和解锁屏幕的代码如下:
        public void unlockScreen() {
                // 获取PowerManager的实例
                PowerManager pm = (PowerManager) mContext
                                .getSystemService(Context.POWER_SERVICE);
                // 得到一个WakeLock唤醒锁
                mWakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
                                | PowerManager.ACQUIRE_CAUSES_WAKEUP
                                | PowerManager.ON_AFTER_RELEASE, "SimpleTimer");
                if (!mWakelock.isHeld()) {
                        // 唤醒屏幕
                        mWakelock.acquire();
                }

                // 获得一个KeyguardManager的实例
                km = (KeyguardManager) mContext
                                .getSystemService(Context.KEYGUARD_SERVICE);
                // 得到一个键盘锁KeyguardLock
                mKeyguardLock = km.newKeyguardLock("SimpleTimer");
                if (km.inKeyguardRestrictedInputMode()) {
                        // 解锁键盘
                        mKeyguardLock.disableKeyguard();
                }
        }


注意,这里使用的mWakelock.isHeld())来判断屏幕当前是否是休眠状态,从Android 2.1 API Level7开始增加了一个判断屏幕是否处于点亮状态可以使用public boolean isScreenOn ()这个方法。
锁屏幕的代码是
public void lockScreen() {
                // release screen
                if (!km.inKeyguardRestrictedInputMode()) {
                        // 锁键盘
                        mKeyguardLock.reenableKeyguard();
                }
                // 使屏幕休眠
                if (mWakelock.isHeld()) {
                        mWakelock.release();
                }
        }

这里要注意,如果没有锁键盘而直接调用mWakelock.release()会产生一个异常。所以一定要先把键盘锁了然后再使屏幕休眠。



来自:http://www.devdiv.com/thread-64416-1-1.html --------------------编程问答-------------------- 楼上说的很详细了 --------------------编程问答-------------------- 学习 keygaurd
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,