confusione dell'ID dell'apparecchio android

Se compro * # * # 8 2 5 5 # * # * , ottengo il mio ID android device che inizia con android- 35c2acdd...

fonte fonte

  • Convertire i pixel in sp
  • Come submit la risposta del messaggio SMS all'indirizzo email?
  • Carica la foto utilizzando HttpPost MultiPartEntityBuilder
  • android.database.CursorIndexOutOfBoundsException: Indice 0 richiesto, con una dimensione di 0
  • come build una forma trapezoidale in android?
  • OCR per android
  • Se utilizzo Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID) il risultato inizia con a96b4b27...

    Se utilizzo ((TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId() il risultato inizia con 3538330...

    Qual è la differenza tra questi ID? Come posso get il risultato della

    * # * # 8 2 5 5 # * # * dial?

  • Tutorial Android "Hello, MapView" - Cartelle mappa non caricate
  • Nessun identificatore di risorse trovato per l'attributo 'parentActivityName' nel pacchetto 'android'
  • Come analizzare correttamente Reddit API in Android
  • Come calcolare i parametri di perdita di pacchetti, Jitter e QoS di un video su una connessione IP?
  • Aggiorna la versione Gradle su Android Studio 2.0
  • Attività di navigazione di navigazione di Android Studio
  • 5 Solutions collect form web for “confusione dell'ID dell'apparecchio android”

    IMEI

    L'IMEI è il ' MAC ' per il module di telefonia – l'ID univoco utilizzato dal telefono quando si connette tramite GSM / GPRS / HSPDA / etc. La networking GSM lo usa per indirizzare chiamate e dati dal telefono sulla networking GSM fino al gateway in Internet (che è una networking IP).

    Un module di telefonia è un chip o un circuito che gestisce la networking telefonica, sia GSM che CMDA, e spesso dispone di uno slot per una scheda SIM rimovibile. Alcuni telefoni dispongono di più di un module di telefonia (telefoni attivi dual o multi-SIM). Ogni module di telefonia ha un proprio IMEI.

    I produttori danno a ciascun telefono (rigorosamente il module di telefonia) un IMEI unico durante la produzione. Tuttavia, il numero può normalmente essere riscritto se si dispone del software giusto. Questo è spesso fatto dopo che un telefono è stato rubato per dare al telefono una nuova identity framework; e il sistema di block del telefono rubato bipasso.

    L'IMEI può essere ottenuto in modo programmato utilizzando l'API TelephonyManager.getDeviceId () .

    I telefoni CDMA dispongono di un ESN o di MEID che sono lunghezze e formati differenti , anche se vengono recuperati utilizzando la stessa API.

    I dispositivi Android senza moduli di telefonia – ad esempio molte tavolette e dispositivi TV – non dispongono di un IMEI . Come ha commentato Schlangi , alcuni dispositivi che non dispongono di un module di telefonia falsano l'IMEI, quindi la presenza di un IMEI non (sempre) garantisce che il dispositivo disponga di un module di telefonia.

    ANDROID_ID

    L'ID ANDROID_ID è un altro numero unico del telefono cellulare – questo viene generato automaticamente dal sistema operativo in fase di avvio per la prima volta (facendo così questo rende molto più facile per i produttori rimuovendo un passo dalla linea di produzione).

    L'ANDROID_ID può (e non) cambiare, ad esempio:

    È utilizzato principalmente dagli sviluppatori (ad es. Identificazione e collegamento a dispositivi che utilizzano adb )

    ANDROID_ID può essere utilizzato per identificare un dispositivo Android in base alle cave sopra, realisticamente significa che identifica in modo univoco il dispositivo su porzioni significative della durata del dispositivo, ma non può essere affidato.

    Si noti anche che c'è stato un bug a Froyo where molti dispositivi si sono offerti allo stesso ANDROID_ID. Questo è il bug

    Altri identificatori

    Ci sono molte altre cose che possono essere utilizzate per identificare il dispositivo:

    • Indirizzo MAC del module WiFi: WifiManager.getConnectionInfo () -> WifiInfo.getMacAddress () . Questo può essere spesso modificato nel software, ma generalmente è costante durante la durata del dispositivo. Inoltre è ansible leggere solo se il module WiFi è acceso.
    • Indirizzo MAC del module BlueTooth: BluetoothAdaptor.getAddress () . Come il WiFi MAC, questo può essere spesso modificato nel software e può essere spento quando ne hai bisogno
    • Il numero di telefono del sottoscrittore. Questo può cambiare se l'utente richiede un nuovo numero dal telco o se l'utente cambia SIM. Viene ottenuto da TelephonyManager.getLine1Number () . Questo è solo presente per i dispositivi telefonici Android con una SIM corretta installata e un servizio a pagamento con un telco.
    • La SIM contiene il proprio numero identificativo ( IMSI ). Ciò è ottenuto dall'API TelephonyManager.getSubscriberId () . Ovviamente la SIM non può essere presente in un determinato momento e cambia quando la SIM è cambiata – e gli utenti possono aggiornare o sostituire la propria SIM mantenendo lo stesso numero, in modo da non poter dire che questo è uno a uno per un telefono o un utente specifico.
    • Relativo all'IMSI è il MSISDN . Questo funziona come l'identificazione di una sottoscrizione (il contratto per un determinato numero di telefono con il provider di telefonia mobile) e dà pertanto al dispositivo il suo numero di telefono. Il MSISDN può essere associato a più tabs SIM e quindi a diversi telefoni. Viene fornito di tutti i requisiti per leggere la SIM sopra. Questo può essere recuperato con TelephonyManager.getSimSerialNumber () . Grazie a Schlangi per le correzioni e le aggiunte
    • Gingerbread e successivamente android.os.Build.SERIAL che molti produttori hanno impostato (ma non tutti. Bugger).

    Altre note

    Hai bisogno di autorizzazioni specifiche per accedere a each API, quindi se provate a tutti, le autorizzazioni dell'applicazione nell'archivio Google Play sembrano abbastanza permissive.

    Penso che questo link spiega tutte le altre opzioni disponibili anche https://android-developers.googleblog.com/2011/03/identifying-app-installations.html

    Trovato sul web:

     private static final Uri URI = Uri.parse("content://com.google.android.gsf.gservices"); private static final String ID_KEY = "android_id"; String getAndroidId(Context ctx) { String[] params = { ID_KEY }; Cursor c = ctx.getContentResolver() .query(URI, null, null, params, null); if (!c.moveToFirst() || c.getColumnCount() < 2) return null; try { return Long.toHexString(Long.parseLong(c.getString(1))); } catch (NumberFormatException e) { return null; } } 

    Aggiungi l'authorization:

     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

    Tuttavia, dubito che sia un ID documentato e sarei caucanvas perché questo potrebbe non funzionare se GTalk viene aggiornato.

    Fonte: http://blog.codepainters.com/2012/01/17/how-to-obtain-gtalk-android-id/

    Vale anche la pena di dare un'occhiata a: http://www.toxicbakery.com/android-development/getting-google-auth-sub-tokens-in-your-android-applications/

    Ci sono alcuni approcci per get l'identificatore univoco sul telefono android.

    1. ID Android È una string esadecimale a 64 bit che viene generata durante il primo avvio del dispositivo. Generalmente non cambierà se non viene resettata la fabbrica.

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

    L'ID Android, considerato inaffidabile perché a volte può essere nullo. La documentazione afferma che "può cambiare quando si ripristina la fabbrica". Questa string può anche essere modificata su un telefono radicato.

      String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID); Returns: 9774d56d682e549c . No special permissions required. 

    2. La string Indirizzo MAC WLAN è un altro identificatore univoco che è ansible utilizzare come ID periferica. Prima di leggerlo, sarà necessario assicurarsi che il progetto abbia l'authorization android.permission.ACCESS_WIFI_STATE o l'indirizzo MAC WLAN venga visualizzato come null.

      WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); String m_szWLANMAC = wm.getConnectionInfo().getMacAddress(); Returns: 00:11:22:33:44:55 (not a real address since this is a custom ROM , as you can see the MAC address can easily be faked). WLAN doesn't have to be on, to read this value. 

    3. La string di indirizzo MAC BT, disponibile nei dispositivi Android con Bluetooth, può essere letto se il progetto ha l'authorization android.permission.BLUETOOTH.

      BluetoothAdapter m_BluetoothAdapter = null; // Local Bluetooth adapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String m_szBTMAC = m_BluetoothAdapter.getAddress(); 

    Restituisce: 43: 25: 78: 50: 93: 38. BT non deve essere acceso, per leggerlo. 4. IMEI solo per dispositivi Android con utilizzo del telefono:

      TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); String szImei = TelephonyMgr.getDeviceId(); // Requires READ_PHONE_STATE 

    Ciò richiede l'aggiunta di un'authorization in AndroidManifest.xml e gli utenti verranno informati sull'installazione del software: android.permission.READ_PHONE_STATE. L'IMEI è univoco per il tuo telefono e sembra questo: 359881030314356 (a less che non disponga di un dispositivo di pre-produzione con IMEI non valido come 0000000000000). Per maggiori informazioni, fare riferimento a questo link.

    IMEI

    Esiste un requisito obbligatorio da parte degli organismi di normalizzazione, che i dispositivi mobili per reti pubbliche possono essere identificati in modo univoco dal numero IMEI

    E 'la responsabilità del constructor di impostare IMEI. In pratica, gli sviluppatori a volte vedono IMEI come 000000 … o 123456 … A volte i telefoni con identici IMEI vanno alla produzione, ovviamente è un bug che dovrebbe essere risolto …

    ANDROID_ID

    Un numero a 64 bit (come una string esadecimale) generato casualmente sul primo avvio del dispositivo e deve rimanere costante per la durata del dispositivo. (Il valore può cambiare se viene eseguito un reset di fabbrica sul dispositivo.)

    Sembra che Android non si fida dei produttori e fornisce un ID univoco alternativo.

    EDIT:

    Questo è quello che ottengo (invece di IMEI) e dispositivo Android che non è un telefono:

     $ adb shell dumpsys iphonesubinfo Phone Subscriber Info: Phone Type = GSM Device ID = null 

    Penso che tutte le informazioni fornite sopra siano abbastanza bene per capire i codici.

    Eppure credo che tu sia ancora "in grado di vedere il risultato del quadrante # # 8255 # # " (scusa di plz se mi sono sbagliato da qualche parte per capire questo)

    Suppongo che la ragione dietro questo è uno degli ultimi bug corre contro il codice USSD fatto in Android. (puoi leggere di più su questo e verificare se il tuo dispositivo è nell'elenco. tutto in tutto il web)

    Infine, se vuoi solo get immediatamente l'ID android ti suggerisco di utilizzare questo app-

    https://play.google.com/store/apps/details?id=com.redphx.deviceid&hl=en

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.