我应该怎么办电源按钮(关闭屏幕,锁定键盘)?

时间:2011-02-08 04:39:10

标签: android

我的目标是和电源按钮做同样的事情 我尝试PARTIAL_WAKE_LOCK,这是我的代码..

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wl.acquire();

之后我在AndroidManifest.xml中打开WAKE_LOCK权限

<uses-permission android:name="android.permission.WAKE_LOCK" />

但是当我启动我的应用程序时,事情就不会发生了 我错过了什么吗?

由于

1 个答案:

答案 0 :(得分:0)

根据你的问题,我不确定你是否:

  1. 尝试按下按钮
  2. 关闭设备
  3. 想要确保设备不会进入休眠状态(因为这是WakeLock应该帮助您的内容)。但它无法阻止用户交互(仅在HTC Desire上测试过)。
  4. 对于1)如果没有作为系统应用程序签名,您无法锁定设备或关闭设备电源,如下所示:http://groups.google.com/group/android-developers/browse_thread/thread/36399f15724ac3ae/98d93e53616cf495?show_docid=98d93e53616cf495

    For 2)您可以使用WakeLock阻止设备进入休眠状态,示例代码可以如下所示:

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
    }
    
    // Call me from a button
    public void doLock(View view) {
        Log.d(TAG, "Lock");
    
        if (!wl.isHeld()) {
            Log.d(TAG, "acquire");
            wl.acquire();
        } else {
            Log.d(TAG, "release");
            wl.release();
        }
    }