1. 程式人生 > >Android螢幕的休眠和喚醒

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","螢幕狀態

1="+pm.isScreenOn());
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即可。