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?
9 answers
Se está à procura do valor definido por applicationId
no gradle, pode simplesmente usar
BuildConfig.APPLICATION_ID
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:
- iniciar uma actividade de outra aplicação e enviar dados nos "Extras" da "intenção"
- enviar uma transmissão com acção/categoria específica e enviar dados nos extras Se tu ... necessidade de partilhar dados estruturados, utilizar o fornecedor de conteúdos
- Se a outra aplicação precisar de correr continuamente em segundo plano, use servidor e" bind " você mesmo para o serviço.
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
Caso contrário, poderá obter a identificação do processo em que a sua aplicação é executada.:
Devolve o identificador deste processo, que pode ser usado com o killProcess(int) e o sendSignal(int, int).
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
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.Se o objectivo é comunicar dados com alguma outra aplicação, use os métodos Sendbroadcast da intenção.
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
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)".