Respostas:
Se você está procurando o valor definido por applicationIdno gradle, pode simplesmente usar
BuildConfig.APPLICATION_ID
Se por application id, você está se referindo package name, você pode usar o método Context::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.
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-id
Nã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
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
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.
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).
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 modernosO PackageInfo.sharedUserIdcampo 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:
android:sharedUserId="string"
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.
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 ++
Se por id do aplicativo, você está se referindo ao nome do pacote ...
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
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)".
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.
public class Installation {
private static String sID = null;
private static final String INSTALLATION = "INSTALLATION";
public synchronized static String id(Context context) {
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists())
writeInstallationFile(installation);
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return sID;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
Você pode ver mais em https://github.com/MShoaibAkram/Android-Unique-Application-ID