Cuando la aplicación Mijia envía un mensaje al teléfono, solo vibra pero no emite ningún sonido. ¿Cómo puedo configurarlo para que suene?
Según la documentación oficial de Xiaomi, puedes establecer un tono de llamada personalizado al crear un mensaje en el lado del servidor:
Llama al método extra (clave de cadena, valor de cadena) del mensaje. La clase generadora establece la clave en "sound_URI" y el valor en el URI del tono de llamada.
Los tonos de llamada solo pueden usar recursos en la aplicación actual y el formato URI se ajusta al recurso de Android://el nombre de su paquete/XXX/XXX.
Los archivos de tono de llamada se colocan en el directorio sin formato de la aplicación de Android.
Los archivos de sonido almacenados requieren una extensión, pero no escriba la extensión en la uri.
Mensaje privado buildMessage() arroja una excepción { Nombre del paquete de cadena = " com . Xiaomi . mipushdemo "; Mensaje de cadenaPayload = "Este es un mensaje" Título de la cadena = "Título de la notificación"; Descripción "Mensaje mensaje = mensaje nuevo." constructor(). título(título). descripción(descripción). Carga útil (mensajePayload). Nombre de paquete restringido (mi nombre de paquete). pasar a través (0) // El mensaje usa la barra de notificaciones. notificarTipo(1). . extra(const. EXTRA_PARAM_SOUND_URI, "Android. recurso://"+nombre del paquete+"/raw/shaking"). build();return message;}
Obviamente, Xiaomi requiere que coloquemos el tono de llamada personalizado en la carpeta res/raw/ en el directorio raíz del proyecto de la aplicación de Android. Tenga en cuenta que este directorio no puede tener subcarpetas. Utilizo el paquete en la nube Hbuilder y no hay forma de agregar recursos de sonido a la carpeta res/raw en el paquete en la nube. Consulté el DCloud oficial de hbuilder y la respuesta fue que esta función no es compatible por el momento y se agregará más adelante.
Está bien. ¿Solo se puede empaquetar sin conexión? ¿Volver a implementar todos los SDK referenciados localmente para el tono de llamada? Los cambios son demasiado grandes, así que olvídalo.
Con un destello de inspiración, a Pu Yi se le ocurrió otra idea: continuar empaquetando en la nube y descargar el archivo apk empaquetado. Descompilamos, agregamos la carpeta sin formato en el directorio res descompilado y agregamos archivos de audio en ella, como shakemp3.mp3, shakeaac.aac. Luego lo compilamos en un nuevo paquete apk y luego volvemos a firmar el nuevo paquete apk.
Siguiendo la idea anterior, lo recorrí nuevamente y descubrí que ¡funcionó! No me preguntes cómo se me ocurrió, no te lo diré.