iT邦幫忙

DAY 19
1

Android 探索之備忘錄系列 第 19

Android 探索之備忘錄 [Day19-Suspend]

  • 分享至 

  • xImage
  •  

以下這段code可以讓系統直接進入休眠狀態(前提是沒有wakelock被其他process取得)

主要是呼叫PowerManager的goToSleep()這個method,

並且呼叫之前設定一個alarm intent, 以便可以達到定時休眠和醒來的功能

    private void doSleep() {
        PowerManager pm = (PowerManager)ctx.getSystemService(Context.POWER_SERVICE);
        AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);

        Intent intent = new Intent();
        intent.setAction("action.suspend.resume.wakeup");

        PendingIntent pending = PendingIntent.getBroadcast(ctx, 0, intent, 0);

        am.cancel(pending);
        am.set(AlarmManager.RTC_WAKEUP,
                System.currentTimeMillis() + (5 * 1000), pending);

        pm.goToSleep(SystemClock.uptimeMillis());
    }

還要在AndroidManifest.xml增加權限

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

恩, 不過這個權限也是要系統層級的權限才能取得

一般app應該也是做不到這件事...


上一篇
Android 探索之備忘錄 [Day18-MobileData On/Off]
下一篇
Android 探索之備忘錄 [Day20-AndroidNDK-2]
系列文
Android 探索之備忘錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言