Como obter o ID da aplicação Android?

no Android, Como é que consigo a aplicação de forma id programática (ou por qualquer outro método), e como é que posso comunicar com outras aplicações usando esse id?

 62
Author: Jonathan Leffler, 2009-08-12

9 answers

Se está à procura do valor definido por applicationId no gradle, pode simplesmente usar

BuildConfig.APPLICATION_ID 
 78
Author: Jeremie, 2016-08-17 13:52:29

Se por application id se estiver a referir-se a package name, pode usar o método Context::getPackageName (http://http://developer.android.com/reference/android/content/Context.html#getPackageName%28%29).

No caso de desejar comunicar com outra aplicação, existem várias maneiras:

  1. iniciar uma actividade de outra aplicação e enviar dados nos "Extras" da "intenção"
  2. enviar uma transmissão com acção/categoria específica e enviar dados nos extras
  3. Se tu ... necessidade de partilhar dados estruturados, utilizar o fornecedor de conteúdos
  4. Se a outra aplicação precisar de correr continuamente em segundo plano, use servidor e" bind " você mesmo para o serviço.
Se puder elaborar a sua exigência exacta, a comunidade poderá ajudá-lo melhor.
 36
Author: Gaurav Vaish, 2011-04-18 05:27:05

Não sei a que "ID da aplicação" se refere, mas para um identificador único da sua aplicação pode usar:

GetApplication ().método getPackageName() da sua actividade actual

 3
Author: reflog, 2009-08-12 07:29:50

Caso contrário, poderá obter a identificação do processo em que a sua aplicação é executada.:

Final static int android.o.Processo.myPid ()
Devolve o identificador deste processo, que pode ser usado com o killProcess(int) e o sendSignal(int, int).
 1
Author: Tony Frolov, 2011-04-12 23:45:02

Não sei para que precisa do ID do app/instalação, mas pode rever as possibilidades existentes num grande artigo dos programadores Android:

Resumindo:

  • {[[0]} para criar id na primeira vez que um aplicativo é executado após a instalação e recuperação simples depois
  • TelephonyManager.getDeviceId() para o identificador real do dispositivo
  • Settings.Secure.ANDROID_ID em dispositivos relativamente modernos
 1
Author: youri, 2011-04-17 18:54:50

O campo PackageInfo.sharedUserId irá mostrar o Id do utilizador atribuído no manifesto .

Se quiser que duas aplicações tenham o mesmo utilizador, para que possam ver os dados uns dos outros e correr no mesmo processo, então atribua-lhes o mesmo Utilizador no manifesto:

android:sharedUserId="string"

Os dois pacotes com o mesmo sharedUserId precisam ter a mesma assinatura também.

Eu também recomendaria a leituraaqui para um empurrão na direção certa.
 0
Author: Will, 2009-08-12 23:45:19

Se o objectivo é comunicar dados com alguma outra aplicação, use os métodos Sendbroadcast da intenção.

 0
Author: advantej, 2011-04-12 19:39:21

Se estiver a usar o novo sistema de compilação** Gradle, então getPackageName irá estranhamente devolver o Id da aplicação, não o nome do pacote. Então a resposta do MasterGaurav está correta, mas ele não precisa começar com ++

Se por ID da aplicação, está a referir-se ao nome do pacote...

Veja mais sobre as diferençasaqui .

** não é assim tão novo neste momento

++ percebo que a sua resposta fez todo o sentido em 2011

 0
Author: tir38, 2016-07-07 21:49:56

O Android App ES File Explorer mostra o nome do pacote Android na secção de aplicações do utilizador, que é útil para o Bitwarden. Bitwarden refere-se a isso como "android application package ID (or package name)".

 0
Author: Chris Good, 2018-05-18 20:08:01