Eu sei que você pode encontrar o endereço IMEI e MAC e outros acessando Settings -> About phone -> Status
. Você também pode encontrar IMEI digitando *#06#
no teclado. Existe alguma maneira de obter o ANDROID_ID no próprio telefone, ao contrário desse código?
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
imei
android-id
Kalinka
fonte
fonte
Respostas:
Você pode fazer isso via
adb
. Não requer raiz, tanto quanto eu sei (testado em um Galaxy Nexus executando 4.2.1 construído a partir da fonte AOSP):fonte
settings get secure android_id
deadb shell
é o mais simples, eu acho - sem saída estranha e não requer raiz. (A partir de um terminal comum no dispositivo, é necessário root.)fonte
android_sdk/platform-tools/
com o cmd ou outro terminal. 2.adb devices
para verificar se o seu celular pode ser encontrado via USB. 3adb shell
. 4. Execute o comando nesta resposta.Como a variante eldarerathis não funcionou para mim e eu não queria instalar um aplicativo apenas para isso, encontrei uma maneira diferente. Única desvantagem possível: requer raiz.
O
android_id
é encontrado na terceira coluna aqui (anonimizado no exemplo).EDITAR:
Observe que esse NÃO é o
android_id
usado pelos aplicativos do Google. O Google parece ter decidido por alguma confusão aqui. Para o Play Services , há um arquivo separadoandroid_id
armazenado pelo GTalk , como apontado por uma postagem do blog (também veja esta resposta por HassleFixes , que é o autor do StripSearch , e felizmente apontou isso nos comentários):*#*#8255#*#*
android-
android_id
usado pelos serviços do GoogleEu verifiquei que: o
android_id
recuperado dessa maneira funciona bem em um dispositivo sem o Google Apps instalado (usado com o BlankStore fornecido pelo projeto NOGAPPS ).fonte
A resposta acima tem
$ content query --uri content://settings/secure --projection value --where "name='android_id'"
neleSe você estiver executando isso no shell, precisará escapar das aspas em torno de android_id, caso contrário elas serão interpretadas e a instrução SQL não as possui, resultando em uma coluna desconhecida.
Meu comando completo do bash parece linha ...
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"
^ Reputação insuficiente para comentar a resposta que a sugeriu acima
fonte
adb shell
, em seguida, executou outro comando dentro desse shell. Isso funciona bem sem escapar das aspas. Sua resposta está executando um único comando na máquina principal; para isso, você precisa escapar das aspas.