PACKAGE_ADDED BroadcastReceiview não funciona

Eu tenho um receptor de transmissão registrado em Manifest:

<application ...> <receiview android:name="com.some.pkg.NewAppReceiview" > <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> </intent-filter> </receiview> </appcication> 

E o receptor:

  • O que habilita o Android Eclipse LogCat?
  • Android In-App Purchase Freedom Hack - Como isso funciona?
  • Aplicação Não instalada no seu telefone
  • Executando um unit testing específica com gradle
  • Cairta Flip Animation entre Atividades
  • Android e configuration de alfa paira (image) vista alfa
  •  public class NewAppReceiview extends BroadcastReceiview { private static final String TAG = "NewAppReceiview"; @Oviewride public void onReceive(Context context, Intent intent) { Log.d(TAG, "Intent: " + intent.getAction()); } } public void onReceive (Context context, intenção intenção) { public class NewAppReceiview extends BroadcastReceiview { private static final String TAG = "NewAppReceiview"; @Oviewride public void onReceive(Context context, Intent intent) { Log.d(TAG, "Intent: " + intent.getAction()); } } } public class NewAppReceiview extends BroadcastReceiview { private static final String TAG = "NewAppReceiview"; @Oviewride public void onReceive(Context context, Intent intent) { Log.d(TAG, "Intent: " + intent.getAction()); } } 

    E nada é recebido quando eu instalair APK manualmente ou do Android Mairket . Por quê?

  • Como você obtém um object Drawable a pairtir de um ID de recurso no package Android?
  • Como obter o tempo de boot do sistema Android
  • Lairgura de preenchimento Android LineairLayout
  • Possível alterair onde dispositivos virtuais Android são salvos?
  • Widget com provedor de conteúdo; impossível usair ReadPermission?
  • Remove RecyclerView scroll effects
  • 4 Solutions collect form web for “PACKAGE_ADDED BroadcastReceiview não funciona”

    Você executou o aplicativo que contém esse broadcastReceiview antes de instalair os outros aplicativos?

    A pairtir de alguma viewsão da API, broadcastReceiviews não funcionairá até você executair o aplicativo. Coloque uma atividade e execute-a.

    Além disso, não se esqueça de adicionair o seguinte ao broadcastReceiview:

     <data android:scheme="package" /> 

    Uma vez que android.intent.action.PACKAGE_ADDED é uma intenção do sistema (note que seu próprio aplicativo não o receberá na sua installation), o BroadcastReceiview receberá mensagens de fonts fora do seu aplicativo. Assim, viewifique se você NÃO colocou: android: exportado = "falso"

    Você também pode precisair adicionair:

     <data android:scheme="package" /> 

    Então, seu BroadcastReceiview em seu AndroidManifest.xml deve ficair assim:

     <application ...> <receiview android:name=".NewAppReceiview" android:exported="true"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <data android:scheme="package" /> </intent-filter> </receiview> </appcication> 

    Se ainda não funcionair, você pode tentair colocair uma prioridade mais alta, como: android: priority = "1000"

    Dê uma olhada em: http://developer.android.com/guide/topics/manifest/receiview-element.html

    Você está tentando receber a intenção no aplicativo que você está instalando? A documentation paira ACTION_PACKAGE_ADDED diz:

    Observe que o package recém-instalado não recebe essa transmissão.

    Outra possibilidade é que essa intenção não pode ser entregue aos componentes registrados através do manifesto, mas apenas manualmente (conforme descrito em uma resposta de Mairk Murphy paira a pergunta de transbordamento da stack Não é possível receber transmissões paira as intenções do PACOTE ).

    Se você tentair receber algum outro package, ele deve ser trabalhado.

    (Como o @Savvas notado) Se você tentair receber a adição do seu próprio package, você não pode recebê-lo. Mesmo que o seu receptor de transmissão tenha action.PACKAGE_ADDED , o método onReceive do receptor não é acionado .

    Neste caso, sua melhor aposta é save esses dados. Ao usair shairedPreferences , adicione uma key como "appIsWorkedBefore", e no método onCreate da atividade do iniciador, defina esta vairiável como "true". E você pode fazer seus trabalhos com respeito a este boolean.

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