△需要权限
- 系统权限:
android:sharedUserId="android.uid.system"
- 其他权限:
<uses-permission android:name="android.permission.WAKE_LOCK"/>
- 其他权限:
<uses-permission android:name="android.permission.DEVICE_POWER"/>
frameworks/base/…/MdmPolicy.java
写好接口供上层调用
public void sleep(){
SleepAndWakeLockControl.sleep(mContext);
}
public void wake(){
SleepAndWakeLockControl.wake(mContext);
}
frameworks/base/…/SleepAndWakeLockControl.java
具体实现
class SleepAndWakeLockControl {
public static void sleep(Context context) {
IPowerManager mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
try{
mPowerManager.goToSleep(SystemClock.uptimeMillis()+1,0,0);
}catch (Exception e){
Log.d("SleepAndWakeLockControl","休眠失败");
}
}
public static void wake(Context context){
IPowerManager mPowerManager = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
try {
mPowerManager.wakeUp(SystemClock.uptimeMillis()+1,0,"wakeUp",context.getOpPackageName());
}catch (Exception e){
Log.d("SleepAndWakeLockControl","唤醒失败");
}
}
}