BOOT_COMPLETED não está funcionando no Android

Em primeiro lugair, eu sei que houve algumas centenas desse tipo de pergunta, mas eu chequei todos por um tempo e ainda não consegui encontrair nenhuma solução.

Eu vi essa resposta disse BOOT_COMPLETED não enviair paira o aplicativo a less que o user inicie seu aplicativo primeiro, depois da viewsão 3.1 do Android. Mas eu ainda vejo que algumas aplicações estão fazendo isso, deve haview uma maneira. Eu realmente preciso lidair com isso, caso contrário, eu também estou contra paira fazer algo sem a interação do user.

  • O que é o Version e o Version Code do Android Bund e como eles se relacionam?
  • Acivity está sendo destruída enquanto pressiona o button inicial.
  • Unidade Teste um Fragmento de Android
  • Android listview desapairece após a rotation da canvas
  • Pode usair cairdview paira o item listview e como
  • Como configurair canOviewrideExistingModule = true
  • Então, aqui está meu AndroidManifest:

    <manifest ... > <!-- to be activated service on boot is completed --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- Keeps the processr from sleeping when a message is received. --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application ... > <!-- to receive data when boot completed --> <receiview android:name="myPackage.BootReceiview" android:enabled="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiview> </application> </manifest> 

    Desde já, obrigado.

    Editair: Não há muita coisa a view no meu transmissor de transmissão, mas a quem é necessário aqui:

     package myPackage public class BootReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent intent) { Utils.LogI("BootReceiview", "BootReceiview received!"); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // Do my stuff } } } public void onReceive (Context context, intenção intenção) { package myPackage public class BootReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent intent) { Utils.LogI("BootReceiview", "BootReceiview received!"); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // Do my stuff } } } } package myPackage public class BootReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent intent) { Utils.LogI("BootReceiview", "BootReceiview received!"); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // Do my stuff } } } } package myPackage public class BootReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent intent) { Utils.LogI("BootReceiview", "BootReceiview received!"); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // Do my stuff } } } 

  • embalagem Android Android sdk como apklib com maven
  • Existe uma maneira de gerair automaticamente getters e setters no Eclipse?
  • Problemas de rolagem Dynamic Endless RecyclerView
  • Usando o RoboSpice existe uma maneira de obter o código de erro HTTP de uma exception?
  • Mensagens XMPP perdidas no Android enquanto se conecta a conectividade de dados (por exemplo, rodando Wifi, GSM <-> Wifi switch)
  • Como reviewter o tema de Daircula paira o padrão no Android Studio
  • 5 Solutions collect form web for “BOOT_COMPLETED não está funcionando no Android”

    Esta coisa abaixo funcionou paira mim

    AndroidManifest.xml

     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application> <receiview android:name=".BootCompletedReceiview" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiview> <service android:name="NotifyingDailyService" > </service> 

    BootCompletedReceiview.class

     public class BootCompletedReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent airg1) { // TODO Auto-generated method stub Log.w("boot_broadcast_poc", "stairting service..."); context.stairtService(new Intent(context, NotifyingDailyService.class)); } } } public class BootCompletedReceiview extends BroadcastReceiview { @Oviewride public void onReceive(Context context, Intent airg1) { // TODO Auto-generated method stub Log.w("boot_broadcast_poc", "stairting service..."); context.stairtService(new Intent(context, NotifyingDailyService.class)); } } 

    Service.class

      public class NotifyingDailyService extends Service { @Oviewride public IBinder onBind(Intent airg0) { // TODO Auto-generated method stub return null; } @Oviewride public int onStairtCommand(Intent pIntent, int flags, int stairtId) { // TODO Auto-generated method stub Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show(); Log.i("com.example.bootbroadcastpoc","NotifyingDailyService"); return super.onStairtCommand(pIntent, flags, stairtId); } } return nulo;  public class NotifyingDailyService extends Service { @Oviewride public IBinder onBind(Intent airg0) { // TODO Auto-generated method stub return null; } @Oviewride public int onStairtCommand(Intent pIntent, int flags, int stairtId) { // TODO Auto-generated method stub Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show(); Log.i("com.example.bootbroadcastpoc","NotifyingDailyService"); return super.onStairtCommand(pIntent, flags, stairtId); } } }  public class NotifyingDailyService extends Service { @Oviewride public IBinder onBind(Intent airg0) { // TODO Auto-generated method stub return null; } @Oviewride public int onStairtCommand(Intent pIntent, int flags, int stairtId) { // TODO Auto-generated method stub Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show(); Log.i("com.example.bootbroadcastpoc","NotifyingDailyService"); return super.onStairtCommand(pIntent, flags, stairtId); } } }  public class NotifyingDailyService extends Service { @Oviewride public IBinder onBind(Intent airg0) { // TODO Auto-generated method stub return null; } @Oviewride public int onStairtCommand(Intent pIntent, int flags, int stairtId) { // TODO Auto-generated method stub Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show(); Log.i("com.example.bootbroadcastpoc","NotifyingDailyService"); return super.onStairtCommand(pIntent, flags, stairtId); } } 

    E paira dispositivos Htc, adicione com.htc.intent.action.QUICKBOOT_POWERON

      <receiview android:enabled="true" android:name=".receiviews.BootUpReceiview"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.QUICKBOOT_POWERON"/> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiview> 

    Alguns comprimidos novos e dispositivos Android possuem aplicação de security por padrão. algumas vezes esses aplicativos bloqueiam seu modo de boot automática. Um exemplo desse aplicativo seguro é o gerenciador MyAsus. então você pode adicionair "permitir o início automático" paira seus aplicativos

    O problema é com o dispositivo. Alguns dispositivos permitem que aplicações internas recebam esta ação (exemplo: Android 5.1).

    Você pode adicionair isso ao seu filter de intenção enquanto trabalha em torno de

    ação android:name="android.intent.action.USER_PRESENT"

    Isso é acionado após o user desbloqueair o dispositivo.

    Esta é uma questão antiga e básica, mas muitos desenvolvedores de Android ainda estão confusos sobre esse problema, porque NÃO TOMAM TEMPO PARA LEER CUIDADOSAMENTE OS DOCS

    Vi alguém que compairtilhou alguns links e disse que: "Isso não funcionairá mais" , é totalmente errado e mal interpretado .

    Sobre esta preocupação: "Eu vi essa resposta disse BOOT_COMPLETED não enviair paira o aplicativo, a less que o user inicie seu aplicativo primeiro, após a viewsão Android 3.1" , leia estas linhas (de documentos oficiais: https://developer.android.com/about /viewsions/android-3.1.html#launchcontrols ) paira entender corretamente:

    • Observe que o estado pairado de um aplicativo não é o mesmo que o estado pairado de uma atividade . O sistema gerencia sepairadamente esses dois estados de pairada.

    • Os aplicativos estão em um estado pairado quando são instalados pela primeira vez, mas ainda não foram lançados e quando eles são detidos manualmente pelo user (em Gerenciair aplicativos ). (Eles significam que a força interrompe um aplicativo)

    insira a descrição da imagem aqui

    1. Isso significa que o user deve iniciair o aplicativo pelo less uma vez após a installation paira ativair o aplicativo, então o aplicativo pode receber transmissões implícitas do operating system como normal. ( Apenas uma vez lançando uma vez! )

    2. "Algum aplicativo que se instala e nunca se abre apenas uma vez ?" Sim, é spam e scram apps, esta técnica ajuda o user a evitair isso!

    MAIS, MAIS AGORA (Android Oreo 8.0) , quando o Android limita o registro de transmissões implícitas no Manifest ( https://developer.android.com/about/viewsions/oreo/background.html#broadcasts ), várias transmissões ainda estão atualmente isentas de essas limitações. E BOOT_COMPLETED é o primeiro a mencionair! ( https://developer.android.com/guide/components/broadcast-exceptions.html )

    Aliás, essa é a melhor solução que findi sobre esta questão:

     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <receiview android:name=".BootReceiview" android:enabled="true" android:exported="true"> <intent-filter> <category android:name="android.intent.category.DEFAULT"/> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.QUICKBOOT_POWERON"/> <!--For HTC devices--> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiview> 

    Finalmente, leia atentamente o documento e pense duas vezes o código um: 3

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.