setAlarmClock()在三星设备上的奇怪行为(棒棒糖)

时间:2016-03-11 14:40:50

标签: android alarmmanager android-alarms

我想用AlarmManager类的setAlarmClock方法启动一个闹钟,但这不起作用,我的状态栏中出现了图标,当时间闹钟时它会消失但是我的广播接收器根本没有发射。

我的代码是这样的:

   if(versionOfAndroid >= Build.VERSION_CODES.LOLLIPOP) {

       AlarmManager.AlarmClockInfo alarmClockInfo = new AlarmManager.AlarmClockInfo(calendar.getTimeInMillis(), pendingIntent);
       alarmManager.setAlarmClock(alarmClockInfo, pendingIntent);
   }

和我的广播接收器一样:

 private class SelfWakeUpReceiver extends BroadcastReceiver {


    @Override
    public void onReceive(Context context, Intent intent) {

      if (intent.getAction().equals(ACTION_WAKE_UP_ALARM)) {



            Intent intent1 = new Intent(context, WakeUpActivity.class);
            intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
            context.startActivity(intent1);

      }

我不明白,图标在闹钟时出现并消失,但没有其他事情发生。这个应用程序在其他设备上的kitkat工作正常,而不是三星与他们的智能管理器......

我的pendingIntent就是这样:

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, numeroAlarm, broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT);

和我在onCreate()方法中的意图:

 broadcastIntent = new Intent(this, SelfWakeUpReceiver.class);
 broadcastIntent.setAction(ACTION_WAKE_UP_ALARM);

我注册接收器:

    intentFilter = new IntentFilter();
    intentFilter.addAction(BluetoothLeService.ACTION_GATT_CONNECTED);
    intentFilter.addAction(BluetoothLeService.ACTION_GATT_DISCONNECTED);
    intentFilter.addAction(WakeUpActivity.ACTION_STOP_ALARM);
    intentFilter.addAction(ACTION_WAKE_UP_ALARM);

    registerReceiver(mSelfWakeUpReceiver, intentFilter);

1 个答案:

答案 0 :(得分:0)

我试图按照@CommonsWare的建议更改我的广播接收器并且它工作正常。所以问题是我的动态注册接收器,我在清单文件中注册了我的接收器并且没问题。

问题不是三星设备管理器或setAlarmClock()方法,而是接收器及其注册。在清单中,它运行良好。