मुझे अपने डिवाइस पर ANDROID_ID कहां मिल सकता है?


11

मुझे पता है कि आप IMEI और MAC एड्रेस और अन्य को ढूंढ कर जा सकते हैं Settings -> About phone -> Status। आप *#06#कीपैड पर टाइप करके भी IMEI पा सकते हैं । क्या इस कोड के माध्यम से विरोध के रूप में, फोन पर ANDROID_ID प्राप्त करने का कोई तरीका है?

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

जवाबों:


8

आप इसके माध्यम से कर सकते हैं adb। रूट की आवश्यकता नहीं है, जहां तक ​​मुझे पता है (AOSP स्रोत से निर्मित 4.2.1 चल रहे गैलेक्सी नेक्सस पर परीक्षण किया गया है):

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:/ $

2
यदि एक टर्मिनल एमुलेटर ऐप के माध्यम से चल रहा है, तो रूट की आवश्यकता है।
लियाम डब्ल्यू

adb में स्थानीय शेल उपयोगकर्ता की तुलना में अधिक विशेषाधिकार हैं। एंड्रॉइड 4.x (आईसीएस और अप) के साथ, आप एडीआर के माध्यम से एक पूर्ण डिवाइस पर भी बिना बैकअप डिवाइस पर एक पूर्ण बैकअप कर सकते हैं - जो शेल उपयोगकर्ता के लिए निश्चित नहीं है।
इज़ी

6

settings get secure android_idसे adb shellसबसे सरल है, मुझे लगता है - कोई बाहरी उत्पादन और रूट की आवश्यकता नहीं है। (डिवाइस पर एक नियमित टर्मिनल से, रूट की आवश्यकता है।)

shell@mydevice:/ $ settings get secure android_id
0123456789abcdef
shell@mydevice:/ $ 

Adb शेल में जाने के लिए: 1. android_sdk/platform-tools/cmd या अन्य टर्मिनल के साथ जाएं । 2. adb devicesयह जांचने के लिए कि आपका मोबाइल यूएसबी के जरिए मिल सकता है या नहीं। 3 adb shell.। 4. इस उत्तर में कमांड चलाएँ।
न्यूमेसुंगिस

2

जैसा कि एल्डेरैथिस वैरिएंट मेरे लिए काम नहीं करता था, और मैं उसके लिए एक ऐप इंस्टॉल नहीं करना चाहता था, मैंने एक अलग तरीका ढूंढ लिया है। केवल संभव दोष: इसे जड़ की आवश्यकता है।

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 गूगल ऐप्स द्वारा उपयोग। लगता है Google ने यहाँ कुछ भ्रम के लिए निर्णय लिया है। के लिए Play सेवाएं , वहाँ एक अलग android_idद्वारा संग्रहीत GTalk , के रूप में एक ब्लॉग पोस्ट द्वारा उठाई बाहर (यह भी देखें HassleFixes द्वारा इस जवाब , जो की लेखक है StripSearch , और शुक्र है टिप्पणी में इस ने बताया):

  • अपने डायलर को बुलाओ
  • डायल *#*#8255#*#*
  • "डिवाइस आईडी" के लिए देखें
  • अग्रणी निकालें android-
  • जो रहता है, वह Google सेवाओंandroid_id द्वारा उपयोग किया जाता है

मैं सत्यापित किया है कि: android_idपुनः प्राप्त इस तरह से कोई गूगल-Apps के साथ एक डिवाइस पर ठीक काम करता है (प्रयुक्त के साथ स्थापित BlankStore द्वारा प्रदान की NOGAPPS परियोजना)।


2

इसमें उपरोक्त उत्तर दिया $ content query --uri content://settings/secure --projection value --where "name='android_id'"गया है

यदि आप इसे शेल से निष्पादित कर रहे हैं, तो आपको android_id के आसपास के उद्धरणों से बचने की आवश्यकता होगी, क्योंकि वे व्याख्या कर सकते हैं और SQL स्टेटमेंट उनके पास नहीं है, जिसके परिणामस्वरूप एक अज्ञात कॉलम है।

मार से मेरी पूरी कमान लाइन लग रहा है ...
$ adb shell content query --uri content://settings/secure --projection value --where "name=\'android_id\'"

^ ऊपर दिए गए उत्तर पर टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है


एक प्रकार का। @ एल्डररैथिस के जवाब से डिवाइस पर एक खोल शुरू हुआ adb shell, और फिर उस शेल के भीतर एक और कमांड चला। यह उद्धरण से बचने के बिना ठीक काम करता है। आपका जवाब मुख्य मशीन पर एक ही कमांड चल रहा है; इसके लिए आपको उद्धरणों से बचने की आवश्यकता है।
मार्क
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.