Android螢幕的休眠和喚醒
目的:實現螢幕的休眠和喚醒。
實現:點選按鈕,螢幕進入休眠,4秒後螢幕自動喚醒。
注意:需要系統簽名(本文是在沒有原始碼的情況下,使用platform.pk8、platform.x509.pem、signapk.jar來進行系統簽名)
開發工具用的是eclipse,android studio還沒試過。
步驟:
1、在eclipse新建專案,在MainActivity中實現程式碼如下:
public class MainActivity extends Activity implements OnClickListener{
Button btnObj;
Handler mTimeHandler=new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnObj=(Button)findViewById(R.id.button1);
btnObj.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
pm.goToSleep(SystemClock.uptimeMillis());
Log.d("sleep","螢幕狀態
mTimeHandler.postDelayed(new Runnable(){
public void run(){
Log.d("sleep", "sleep--");
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG");
wakeLock.acquire();
Log.d("sleep","螢幕狀態2="+pm.isScreenOn());
wakeLock.release();
}
}, 4*1000);}}
2、在AndroidManifest.xml中新增系統簽名
<manifest
android:sharedUserId="android.uid.system" >
3、在AndroidManifest.xml中新增許可權
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
注意:如果出現加許可權報錯,例如:
可以開啟eclipse中的Window --> Show View --> Problems,然後右擊Error再刪除,就可以執行專案了。
4、①把編譯好的APK和三個系統簽名工具(platform.pk8、platform.x509.pem、signapk.jar)放到同一個目錄下。
②開啟cmd,進入①中所說的目錄下,輸入命令:java -jar signapk.jar platform.x509.pem platform.pk8 aaa.apk(簽名前) bbb.apk(簽名後),按回車。
③得到系統簽名的APK:bbb.apk。
④執行bbb.apk即可。