我要做的程序是,这边数据库在不断select,在执行的过程中,实现连续间隔1秒按电源键5次,请问ANDROID程序里怎么实现按电源的效果?
我看网上的做了以下程序,可是没用.
//IsScreenOn
         for(int i=0;i<5;i++){
          PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
             PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Android123"); 
             wl.setReferenceCounted(false);
             boolean isScreenOn = pm.isScreenOn();
          if(isScreenOn){
              wl.release(); 
              tv.append("1\n");
             }else{
              wl.acquire();
              tv.append("2\n");
             }
          Thread.sleep(1000);
         }
跪求跪求高人指导

解决方案 »

  1.   

    你说的是不是用程序来实现物理按电源键,按物理电源键实际上就是黑屏,然后进入待机界面如果仅仅是黑屏,可以通过PowerManager的setBacklightBrightness(int brightness)和goToSleep(long time) 这两个方法同时来操作即可如果还要锁屏,则还需要调用向KeyguardMediaView发个show的广播,让其拉起待机界面
      

  2.   


    你是要用程序模拟点击电源键,系统自己影响suspend,还是自己拼凑程序实现黑屏+锁
      

  3.   

    模拟按键,没这权限吧,从m5 sdk以后,m3时可以的
      

  4.   

    本帖最后由 yiyaaixuexi 于 2011-08-14 14:12:55 编辑
      

  5.   

    你好,我是这么做的
    PowerManager pm = (PowerManager)(getSystemService(
                         Context.POWER_SERVICE));
                 pm.goToSleep(SystemClock.uptimeMillis()+500 );
    但是屏幕并没有变动,没有变黑至屏保。
    xml文件里面我已经加了权限
     <uses-permission android:name="android.permission.DEVICE_POWER"/>
      

  6.   

    正常情况下,用户按下Power键时会在 /dev/input/event0 节点中产生一个信号, 上层的 WindowManager 会收到这个上节点的变化而得知当前应该进入休眠状态, 通知PowerManagerService, 它会做调用setScreenStateLocked(boolean on)现在要自己模拟这个流程
      

  7.   


    实现没有问题,只要有root权限,但是模拟电源键这样的危险动作,估计很难实现对于正常的固件,自己量产山寨机,我可以告诉你如何修改framework实现。
      

  8.   

    谢谢,我在网上找到了你说的这个程序:
    http://www.oschina.net/code/explore/android-2.2-froyo/com/android/server/PowerManagerService.java
    但是我在自己下载的Android里面没有找到这个程序,请问是怎么一回事呢,
    还有,我只为了实现效果,那么用你的setScreenStateLocked(boolean on)来黑屏,然后用wake_lock来锁屏就行了是吗
      

  9.   

    跪求赐教如何在framework下实现
      

  10.   

    我查了网页,确实好像电源操纵这一块是要到framework实现,应用程序实现不了,请高手赐教如果framework实现
      

  11.   

    你好,你说的这个涉及到Framework开发吧,能给我点这方面的说明吗
      

  12.   

    在manifest标签里设置 android:sharedUserId="android.uid.system",设置此apk为系统进程,可调用系统的关机等操作。
      

  13.   

    22楼的方法无法安装应该程序到手机
    出现INSTALL_FAILED_SHARED_USER_INCOMPATIBLE