Xiaomi no recibe notificación cuando la aplicación no se está ejecutando
Estoy trabajando en una aplicación en la que utilizo Google Push Notification. La aplicación recibe una notificación cuando se está ejecutando en el teléfono Xiaomi de lo contrario, cuando se ha matado no recibe notificación.
Si queremos recibir una notificación si se cancela la aplicación, necesitamos permitir la reinicialización automática de la aplicación manualmente desde la aplicación de seguridad de xiaomi. Quiero cualquier truco para hacer esto mediante programación sin preguntar al usuario. ¿Hay alguna manera de hacer esto?
- ¿Cuáles son las consecuencias de tener el ID de SENDER de GCM expuesto?
- ¿Es gratuito Firebase Cloud Messaging?
- ¿Por qué obtengo "MismatchSenderId" desde el lado del servidor GCM?
- Vibrar en la notificación push
- La notificación de envío de GCM no se muestra en algunos dispositivos cuando la aplicación no se está ejecutando
Http://en.miui.com/thread-33826-1-1.html
- Cómo puedo saber los dispositivos registrados en mi nube de aplicaciones de GCM (Lista de dispositivos)
- Enviar notificaciones mediante GCM en Android
- Mensaje de emisión extraño recibido en el inicio de la aplicación
- Notificaciones Push utilizando el servidor Rails
- Parse.com deshabilitar la notificación de notificación push
- Android GCM un dispositivo tiene múltiples registro
- Notificación de empuje en Web móvil
- Envío de mensajes (notificación) a un grupo - Android
Después de MIUI 6 & 7:
El modo de ahorro de energía MIUI está configurado por defecto en "Estándar" (Acceso de fondo a los servicios de ubicación y la red estará restringida)
Dónde establecer:
Ajustes -> Ajustes adicionales -> Batería y rendimiento -> Administrar el uso de la batería de las aplicaciones -> Modos de ahorro de energía -> Establecer en Off (MIUI no restringirá las actividades de fondo)
Hay cinco ajustes que deben hacerse manualmente en caso de xiaomi para ejecutar correctamente cualquier aplicación. He hecho una gran cantidad de investigación sobre esto y no hay forma de corregir estos ajustes mediante programación. Estos son los ajustes:
- Inicio automático -> ACTIVADO (Activar y reiniciar la aplicación)
- Optimización MIUI bajo Opciones de desarrollador -> OFF
- Optimización de memoria bajo Opciones de desarrollador -> BAJA / APAGADA
- No hay restricciones sobre las actividades de fondo bajo Configuración de batería y rendimiento
- Ahorro de la batería -> OFF
Hay muchos otros dispositivos en los que la configuración manual debe hacerse para que la aplicación funcione como se espera, por ejemplo, Lenovo, algunos dispositivos Micromax. Las empresas imponen este tipo de restricciones sobre las actividades de fondo para mejorar la vida de la batería en general. Algunas aplicaciones como facebook y whatsapp funcionan correctamente ya que podrían haber sido incluidas como aplicaciones de sistema.
En cuanto a mi comprensión una vez que las aplicaciones de borrar o borrar la memoria en el menú de aplicaciones recientes, xiaomi (o MIUI rom) obligará a cerrar todos los servicios y la memoria relacionados con esa aplicación similar al usuario va a la configuración y la fuerza de detener la aplicación,
Este enlace se refiere a la misma cuestión, por lo tanto, todos los receptores de Broadcast y servicios se terminará a menos que iniciado por el usuario de nuevo, por lo que la notificación no será recibido,
Sin embargo, puede intentar activar el inicio automático de los permisos de la aplicación en la configuración y Si aún así no funciona, intente crear un servicio que se reinicie por sí mismo y habilite el inicio automático en la configuración. AutoStart es muy importante en MIUI hasta que se habilite todo La actividad de notificación o aplicación se cerrará con fuerza y nunca se iniciará
Me enfrenté a un problema similar y lo arregló mediante la adición de un receptor BOOT_COMPLETED a mi aplicación.
Añada el siguiente para manifestar:
<receiver android:name=".receivers.BootReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
A continuación, cree su clase BootReceiver
public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { Intent startServiceIntent = new Intent(context, FBTokenService.class); context.startService(startServiceIntent); Intent notificationServiceIntent = new Intent(context, FBNotificationService.class); context.startService(notificationServiceIntent); } } }
Debería funcionar con esto.
- No se puede obtener Android SDK Manager para abrir
- Caracteres Unicode no se muestran en TextView.setText