로 이동하면 IMEI 및 MAC 주소 및 기타 정보를 찾을 수 있음을 알고 있습니다 Settings -> About phone -> Status
. *#06#
키패드 로 입력하여 IMEI를 찾을 수도 있습니다 . 이 코드를 사용하는 것과 반대로 전화 자체에서 ANDROID_ID를 얻는 방법이 있습니까?
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
답변
를 통해이 작업을 수행 할 수 있습니다 adb
. 내가 아는 한 루트가 필요하지 않습니다 (AOSP 소스에서 빌드 된 4.2.1을 실행하는 Galaxy Nexus에서 테스트 됨).
shell@android:/ $ content query --uri content://settings/secure --projection value --where "name='android_id'"
settings/secure --projection value --where "name='android_id'"
Row: 0 value=<your ID in hexadecimal>
shell@android:/ $
답변
settings get secure android_id
from adb shell
은 가장 간단합니다. 외부 출력이 없으며 루트가 필요하지 않습니다. (장치의 일반 터미널에서는 루트가 필요합니다.)
shell@mydevice:/ $ settings get secure android_id
0123456789abcdef
shell@mydevice:/ $
답변
으로 eldarerathis 변형이 나를 위해 작동하지 않았다, 나는 단지에 대한 응용 프로그램을 설치하지 않았다, 나는 다른 방법을 찾았습니다. 가능한 단점 : 루트가 필요합니다.
adb shell
$ su
# cd /data/data/com.android.providers.settings/databases
# sqlite3 settings.db
sql> select * from secure where name='android_id';
26|android_id|1234567890abcdef1
는 android_id
(이 예에서는 익명) 여기서 세 번째 열에서 발견된다.
편집하다:
이 것을 참고 하지android_id
구글 앱 사용. 구글은 혼란을 결정한 것으로 보인다. 들어 플레이 서비스 , 별도의 거기 android_id
에 저장된 GTalk을 같은, 블로그 포스트에 의해 지적 아웃 (참조 HassleFixes로이 답변 의 autor입니다 StripSearch을 , 감사하게 의견이 밖으로 지적) :
- 다이얼러를 불러
- 다이얼
*#*#8255#*#*
- “장치 ID”를 조심하십시오
- 선행을 제거
android-
- 남아있는 것은 Google 서비스 에서
android_id
사용하는 것입니다.
확인했습니다 : android_id
이 방법으로 검색 한 구글 앱이 설치되지 않은 기기 ( NOGAPPS 프로젝트에서 제공 하는 BlankStore 와 함께 사용 ) 에서 제대로 작동 합니다.
답변
위의 대답이 $ content query --uri content://settings/secure --projection value --where "name='android_id'"
그 안에
쉘에서 이것을 실행하면 android_id 주위의 따옴표를 이스케이프 처리해야합니다. 그렇지 않으면 해석되고 SQL 문에 따옴표가 없으므로 알 수없는 열이 발생합니다.
bash의 내 명령은 모두 선처럼 보입니다 …
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"
^ 위에서 제안한 답변에 대해 언급 할만한 평판이 충분하지 않음