RTC_WAKEUP is not working

前端 未结 4 1092
太阳男子
太阳男子 2021-02-06 17:12

Currently i am working on a Broadcast Receiver application, in which i am making an Alarm which should display a message after we enter the seconds. I used RTC_WAKEUP, which mea

相关标签:
4条回答
  • 2021-02-06 17:35

    Checked the google DeskClock app: com.android.deskclock.alarms.AlarmStateManager (it's a BroadcastReceiver)

    In its onReceive function used goAsync():

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final PendingResult result = goAsync();
        final PowerManager.WakeLock wl = AlarmAlertWakeLock.createPartialWakeLock(context);
        wl.acquire();
        AsyncHandler.post(new Runnable() {
            @Override
            public void run() {
                handleIntent(context, intent);
                result.finish();
                wl.release();
            }
        });
    }
    

    You should take a shot with that.

    0 讨论(0)
  • 2021-02-06 17:37

    Fix your manifest. Instead of

    <receiver android:name="MyBroadcastReceiver" >
    

    you need:

    <receiver android:name=".MyBroadcastReceiver" >
    
    0 讨论(0)
  • 2021-02-06 17:40

    RTC_WAKEUP will not switch on the screen, all it does is wakes up thee cpu so that your job is done. For the Screen to be turned on you need a FULL wakelock to be acquired.

    PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
     PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
                                          | PowerManager.ON_AFTER_RELEASE,
                                          "wakeup");
     wl.acquire();
     // ... do work...
    //show toask
     wl.release();
    
    0 讨论(0)
  • 2021-02-06 17:50

    Do yo have the permission in your Manifest?

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    
    0 讨论(0)
提交回复
热议问题