AlarmManager.RTC_WAKEUP no funciona para algunos dispositivos
Estoy utilizando AlarmManager en mi aplicación para establecer la alarma para un tiempo determinado. He utilizado AlarmManager.RTC_WAKEUP para configurar la alarma. Cuando estoy probando el mismo que está trabajando en el número de dispositivos como Lg optimus, Sony Xperia, etc Pero al probar la misma aplicación en Samsung Galaxy S3 encontré que la alarma no está funcionando. Todavía no puedo entender por qué está sucediendo esto.
Estoy usando código siguiente para fijar la alarma: –
- Alarma de repetición para días específicos de la semana en Android
- AlarmManager cuando el teléfono está apagado - ANDROID
- Android Galaxy S4 - Actividad visible en la pantalla de bloqueo
- Android, ¿Cómo cancelar una alarma? AlarmManager.cancel no funciona
- Establecer una alarma desde mi aplicación
// create the object AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); //set the alarm for particular time alarmManager.set(AlarmManager.RTC_WAKEUP,cal1.getTimeInMillis(), PendingIntent.getBroadcast(getActivity(),reminderId, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT));
Alguien por favor ayúdame a resolver este extraño problema. Cualquier ayuda sería apreciable. Gracias
- Eventos de alarma Android se retrasan
- Android: Cómo utilizar AlarmManager
- Creación de una notificación en un momento determinado mediante el Administrador de alarmas
- ¿Cómo puedo establecer alarmas exactas y repetitivas en Android 4.4?
- Identificar y cancelar un envío de alarma a un AlarmManager
- AlarmManager no se repite
- Actualizar un widget sólo cuando el dispositivo está activado Y el widget está visible en la pantalla de inicio
- Android cómo cancelar AlarmManager.setAlarmClock ()
No estoy seguro, pero suena el problema es con la forma en que se establece el tiempo cal1 y tal vez zona horaria diferente.
No estoy seguro de cuál es el problema particular que tienes, pero puedes intentar reemplazar cal1.getTimeinMillis () con System.currentTimeMillis () + tu delta de tiempo en ms. Esto funciona constantemente para mí.
Hola tengo un código de ejemplo y he probado en todos los dispositivos de medición y está funcionando bien. Por favor, pruebe este código postal demo espero que funcione en caso de que,
Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),pendingIntent);
Leer más: http://www.androidhub4you.com/2013/12/android-alarm-manager-example-how-to.html
¿Las pruebas se están disparando por el error del sistema operativo Android de larga data https://code.google.com/p/android/issues/detail?id=2880 ? Si el reloj se pone al revés, la transmisión de Intent.ACTION_DATE_CHANGED
no se entregará hasta que el reloj alcance lo que iba a ser la hora de la alarma. (Reinicie para restablecer este estado roto.) Eso es porque este intento se basa en una alarma AlarmManager que no se actualiza cuando el reloj cambia.
Esa situación es bastante rara en el uso normal. Pero se produce con frecuencia cuando se prueba el código de alarma.
Si está probando una alarma de AlarmManager ajustando el reloj, AFAIK cualquier alarma establecida en un Calendario de destino en cualquier dispositivo Android se desordenará ajustando el reloj. Usted puede trabajar alrededor de él, reprogramando su alarma cada vez que el reloj se ajusta. Esto supone que el sistema transmite correctamente Intent.ACTION_TIME_CHANGED
para que pueda saber cuándo se ajusta el reloj. No es como Intent.ACTION_DATE_CHANGED
que ocurre cuando la fecha cambia debido al tiempo que pasa.
Creo que tienes problema en tu objeto "cal1";
Cuando se establece la hora en el objeto de calendario, en realidad la configuración de mes, no debe utilizar el valor numérico exacto del mes;
Ex: – Abril = 4, debe usar 3 en lugar de 4
Me enfrento a este problema en el API de nivel 19, pero no sé acerca de los demás.
Esta pregunta puede darle una mejor explicación. Porqué el mes da un valor equivocado
public Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR,2014); c.set(Calendar.MONTH, 03);//One minus from actual month numeric value c.set(Calendar.DATE, 24); c.set(Calendar.HOUR_OF_DAY,16 ); c.set(Calendar.MINUTE, 39); c.set(Calendar.SECOND, 0); am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),pi);
- Pasar `Contexto` en todas partes parece desordenado – crear clases para manejar diferentes interacciones con el contexto?
- ¿Cómo puedo incluir la clave pública de RSA de Google Play Services en mi binario de aplicaciones para Android?