Las aplicaciones no se iniciarán automáticamente en Android 9.0 Pie

Compré un Blackview BV5900 barato con Android 9.0 (supongo que una ROM personalizada) porque necesitaba algo resistente y con una batería de larga duración para realizar pruebas. Estoy luchando por encontrar respuestas sobre por qué las aplicaciones no se inician automáticamente cuando se supone que deben hacerlo. La aplicación en cuestión es principalmente Grandstream Wave - Video, que es efectivamente un cliente SIP. Arranca automáticamente bien en un viejo Samsung Galaxy V6.

Probé varias aplicaciones de inicio automático para ver si podía evitarlo, pero parece que tampoco se cargan en el arranque, por lo que no hacen la tarea que deben realizar. He estado en contacto con el fabricante y su respuesta es que simplemente no lo hará.

Como es un teléfono de prueba, estoy muy feliz de rootearlo, aunque soy completamente nuevo en Android, estoy seguro de que encontraré suficiente información para comenzar con un poco de google.

Lo que busco es un poco de ayuda sobre qué buscar y cómo encontrarlo. Por lo que deduzco, la aplicación está buscando BOOT_COMPLETEalgún tipo de mensaje, así que supongo que está deshabilitado en alguna parte. Cualquier respuesta, suponga que no sé nada, tendrá razón.

EDITAR 11 de mayo de 2020

Intenté el comando de shell como se solicitó aquí , no Joy. Resultado del caparazón de abajo. ¿No estoy seguro de si esto solo significa que no tengo suficientes privilegios para ejecutarlo o si está deshabilitado de alguna manera?

Broadcasting: Intent { act=android.intent.action.BOOT_COMPLETED flg=0x400000 pkg=com.grandstream.wave }
Security exception: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.BOOT_COMPLETED from pid=5834, uid=2000
    at com.android.server.am.ActivityManagerService.broadcastIntentLocked(ActivityManagerService.java:21774)
    at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:22411)
    at com.android.server.am.ActivityManagerShellCommand.runSendBroadcast(ActivityManagerShellCommand.java:690)
    at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:174)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:16434)
    at android.os.Binder.shellCommand(Binder.java:634) at android.os.Binder.onTransact(Binder.java:532)
    at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:3551)
    at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3397)
    at android.os.Binder.execTransact(Binder.java:731)
BOOT_COMPLETED no es lo único que se requiere para que una aplicación se ejecute en segundo plano. Puede ayudar: deshabilite el inicio automático en el arranque y restrinja la ejecución en segundo plano
Respuesta a EDITAR 11 de mayo de 2020 : ACTION_BOOT_COMPLETED "es una intención protegida que solo puede ser enviada por el sistema". : developer.android.com/reference/android/content/… . Por lo tanto, necesita acceso de root.

Respuestas (2)

Esto no sería una respuesta completa a su problema. Pero si sospecha que la transmisión BOOT_COMPLETED está deshabilitada por algún motivo, puede intentar enviarla manualmente usando adb shell y ver si su aplicación se inicia.

Es mejor enviar la transmisión directamente a su aplicación especificando su nombre de paquete. Si no conoce el nombre del paquete de su aplicación, primero debe encontrarlo. Para obtener una lista de todos los paquetes instalados en su dispositivo, puede usar el siguiente comando.

$ adb shell pm list packages

Después de encontrar el nombre del paquete de su aplicación desde el resultado del comando anterior, puede usar el siguiente comando para enviar la transmisión a su aplicación y ver si comienza después de recibir la transmisión.

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -p <com.your.apps.package.name.comes.here>

En el comando anterior, reemplácelo <com.your.apps.package.name.comes.here>con el nombre del paquete de su aplicación.

Gracias, probaré el shell más adelante en la semana cuando tenga algo de tiempo y publicaré los resultados aquí.
Parece que no tiene permiso para enviar una transmisión BOOT_COMPLETED a través de adb shell. Compruebe si puede ejecutar este comando y obtener acceso de root a través de adb shell: adb rootcomo se menciona aquí . Si puede obtener acceso de root, podrá enviar la transmisión.
Gracias, estoy bastante seguro de que no tengo acceso de root, pero lo comprobaré.

Este problema se debe al hecho de que en todos los firmware en todos los teléfonos inteligentes, la ejecución automática de la aplicación está deshabilitada

Este problema se resuelve muy fácilmente con acceso root. Solo necesita arreglar una línea en el archivo /system/build.prop :

  • ro.freeme_freemanager=1
  • ro.hct_autostart_manager=1

En estas líneas, debe cambiar 1 a 0. Puede editar el archivo /system/build.prop con Total Commander o cualquier otra cosa.

Probado con éxito en BV5900

Su respuesta podría mejorarse con información de apoyo adicional. Edite para agregar más detalles, como citas o documentación, para que otros puedan confirmar que su respuesta es correcta . Puede encontrar más información sobre cómo escribir buenas respuestas en el centro de ayuda .