No Android, como obtenho a id do aplicativo programaticamente (ou por algum outro método) e como posso me comunicar com outros aplicativos usando essa id?
92
Se você está procurando o valor definido por applicationId
no gradle, pode simplesmente usar
BuildConfig.APPLICATION_ID
Se por
application id
, você está se referindopackage name
, você pode usar o métodoContext::getPackageName
( http: // http: //developer.android.com/reference/android/content/Context.html#getPackageName%28%29 ).No caso de você desejar se comunicar com outro aplicativo, existem várias maneiras:
Se você conseguir elaborar seu requisito exato, a comunidade poderá ajudá-lo melhor.
fonte
Context.getPackageName()
faz retornar o ID do aplicativo e não o nome do pacote (embora eles geralmente são os mesmos). O nome um tanto confuso do método é legado. Fonte: developer.android.com/studio/build/application-idNão tenho certeza a qual "id do aplicativo" você está se referindo, mas para um identificador exclusivo do seu aplicativo, você pode usar:
método getApplication (). getPackageName () de sua atividade atual
fonte
getApplicationContext().getPackageName()
?O nome do pacote é o ID do seu aplicativo Android.
String appId = BuildConfig.APPLICATION_ID
Ou
https://play.google.com/store/apps/details?id=com.whatsapp
Id do aplicativo = com.whatsapp
fonte
Etapa 1: Abra a Google Play Store
Etapa 2: Abra qualquer aplicativo na App Store. Exemplo: facebook
Passo 3: Clique em qualquer aplicativo e olhe o link do navegador e no final id = com.facebook.katana & hl = en estará lá e este é o seu ID exclusivo do aplicativo.
fonte
Caso contrário, você pode obter a id do processo em que seu aplicativo é executado:
final static int android.os.Process.myPid ()
Retorna o identificador desse processo, que pode ser usado com killProcess (int) e sendSignal (int, int).
fonte
Não tenho certeza para que você precisa do ID do aplicativo / instalação, mas você pode revisar as possibilidades existentes em um ótimo artigo de desenvolvedores Android:
Resumindo:
UUID.randomUUID()
para criar id na primeira vez que um aplicativo é executado após a instalação e recuperação simples depoisTelephonyManager.getDeviceId()
para identificador de dispositivo realSettings.Secure.ANDROID_ID
em dispositivos relativamente modernosfonte
O
PackageInfo.sharedUserId
campo mostrará o ID do usuário atribuído no manifesto .Se você quiser que dois aplicativos tenham o mesmo userId, para que possam ver os dados um do outro e ser executados no mesmo processo, atribua a eles o mesmo userId no manifesto:
Os dois pacotes com o mesmo sharedUserId também precisam ter a mesma assinatura.
Eu também recomendaria ler aqui para um cutucão na direção certa.
fonte
Se todo o propósito é comunicar dados com algum outro aplicativo, use os métodos sendBroadcast do Intent.
fonte
Se você estiver usando o novo sistema de compilação ** Gradle
getPackageName
, estranhamente retornará a ID do aplicativo, não o nome do pacote. Portanto, a resposta de MasterGaurav está correta, mas ele não precisa começar com ++Veja mais sobre as diferenças aqui .
** não tão novo neste ponto
++ Sei que a resposta dele fez todo o sentido em 2011
fonte
Android App ES File Explorer mostra o nome do pacote Android na seção Aplicativos do usuário, que é útil para o Bitwarden. Bitwarden refere-se a isso como "ID do pacote do aplicativo Android (ou nome do pacote)".
fonte
Para rastrear instalações, você pode, por exemplo, usar um UUID como identificador e simplesmente criar um novo na primeira vez que um aplicativo for executado após a instalação. Aqui está um esboço de uma classe chamada “Instalação” com um método estático Installation.id (contexto de contexto). Você pode imaginar a gravação de mais dados específicos da instalação no arquivo INSTALLATION.
}
Você pode ver mais em https://github.com/MShoaibAkram/Android-Unique-Application-ID
fonte