问题如题,我在网上找一大堆code,按照上的面方法试来试去解锁可以,但是点亮屏幕就是不行啊。不知道具体细节的代码错在哪儿了,有没有人给我个Demo,一定要能正确运行起来的啊。不要在网上拷贝过来的,那样不行。可以发到

解决方案 »

  1.   

    当时做提醒功能时做的,该代码是一个服务
    楼主写一个Activity启动该服务即可,用一个线程开启服务,要是黑屏的状态下启动才有效果。import android.app.KeyguardManager;
    import android.app.KeyguardManager.KeyguardLock;
    import android.app.Service;
    import android.content.Context;
    import android.content.Intent;
    import android.os.IBinder;
    import android.os.PowerManager;
    import android.util.Log;public class ScreenService extends Service { //声明键盘管理器
    KeyguardManager mKeyguardManager = null;    
    //声明键盘锁
    private KeyguardLock mKeyguardLock = null;  
    //声明电源管理器
    private PowerManager pm;
    private PowerManager.WakeLock wakeLock;

    @Override  
    public IBinder onBind(Intent arg0) {  
    return null;  
    }  
    @Override  
    public void onCreate() {  
    //获取电源的服务
    pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    //获取系统服务
    mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
    super.onCreate();  
    }  
    @Override  
    public void onStart(Intent intent, int startId){ 
    //点亮亮屏
    wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
    wakeLock.acquire();
    Log.i("Log : ", "------>mKeyguardLock");
    //初始化键盘锁,可以锁定或解开键盘锁
    mKeyguardLock = mKeyguardManager.newKeyguardLock("");  
    //禁用显示键盘锁定
    mKeyguardLock.disableKeyguard();  
    }
    @Override
    public void onDestroy() {
    wakeLock.release();
    super.onDestroy();
    }  
    }记得需要在AndroidManifest文件中加入
    <!-- 解锁的权限 -->
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
    <!-- 亮屏的权限 -->
    <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
      

  2.   

    对不起啊,单错了,丢了个板砖。呵呵
    我这样试了,第一我先用startService 启动的,发现这样用的话,会发现屏幕一直不会彻底变黑。所以我认为要用bindService,具体怎么用,我还没试。第二,屏幕虽然亮了,可是并没有像正常操作那样的彻底变亮啊,这种让屏幕变亮只是亮一点,还是很暗。是这样吗?我用的是sdk9
      

  3.   

    你在Activity的stop方法中stopService,
    然后再Service的destory方法中将亮屏的给释放  mWakelock.release();
    这样就不会一直亮着了,至于屏幕的亮度sdk中也没有说明白到底有多亮,
    public void acquire ()     //该方法只是确保屏幕会被唤醒
    Makes sure the device is on at the level you asked when you created the wake lock.public void acquire (long timeout)     //参数表示唤醒的时间,时间过后,会自动释放该锁
    Makes sure the device is on at the level you asked when you created the wake lock. The lock will be released after the given timeout.
      

  4.   

    huweilong1030,回答的超棒啊。感激了,哈哈!
      

  5.   

    那个灯没有全亮,后来我找了找API,它有个参数可以点亮。呵呵
      

  6.   

    学习中啊,但是看得不是很明白,我想实现在锁屏的时候长按接听键就可以解锁,你们有什么idea啊?
      

  7.   

    什么ya...,这代码只是保持屏幕始终处于唤醒中,为了让操作顺利完成不至于被锁屏中断罢了。如果你按下手机一侧的电源按钮,屏幕完全黑掉了系统就休眠了,请问就在这个完全黑屏的状态,你用个service起个activity用什么powermanager唤醒一下试试!?...
      

  8.   

    最近项目中用到的,写了篇文章记录下,可以看看。Android屏幕点亮(常亮)及屏幕解锁和锁定
      

  9.   

    楼主,api中到底有什么参数可以将屏幕彻底变亮啊,能不能指点一下啊
      

  10.   

    newWakeLock里的flag 
    PowerManager.SCREEN_DIM_WAKE_LOCK换成PowerManager.SCREEN_BRIGHT_WAKE_LOCK就行了还有个PowerManager.ON_AFTER_RELEASE也是比较有用的,功能就是字面意思