Как получить серийный номер телефона

Asked
13 years, 1 month ago

Viewed
579k times

To identify each devices uniquely I would like to use the IMEI (or ESN number for CDMA devices). How to access this programmatically?

Jabberwocky's user avatar

Jabberwocky

46.6k17 gold badges57 silver badges108 bronze badges

asked Dec 29, 2009 at 0:52

Tom's user avatar

6

You want to call android.telephony.TelephonyManager.getDeviceId().

This will return whatever string uniquely identifies the device (IMEI on GSM, MEID for CDMA).

You’ll need the following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

in order to do this.

That being said, be careful about doing this. Not only will users wonder why your application is accessing their telephony stack, it might be difficult to migrate data over if the user gets a new device.

Update: As mentioned in the comments below, this is not a secure way to authenticate users, and raises privacy concerns. It is not recommended. Instead, look at the Google+ Login API if you want to implement a frictionless login system.

The Android Backup API is also available if you just want a lightweight way to persist a bundle of strings for when a user resets their phone (or buys a new device).

solidak's user avatar

solidak

5,0033 gold badges30 silver badges33 bronze badges

answered Dec 29, 2009 at 1:01

Trevor Johns's user avatar

Trevor JohnsTrevor Johns

15.6k3 gold badges55 silver badges54 bronze badges

13

In addition to the answer of Trevor Johns, you can use this as follows:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();

And you should add the following permission into your Manifest.xml file:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

In emulator, you’ll probably get a like a «00000…» value. getDeviceId() returns NULL if device ID is not available.

answered Jun 9, 2010 at 19:44

Taner's user avatar

TanerTaner

4,5013 gold badges17 silver badges14 bronze badges

6

I use the following code to get the IMEI or use Secure.ANDROID_ID as an alternative, when the device doesn’t have phone capabilities:

/**
 * Returns the unique identifier for the device
 *
 * @return unique identifier for the device
 */
public String getDeviceIMEI() {
    String deviceUniqueIdentifier = null;
    TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
    if (null != tm) {
        deviceUniqueIdentifier = tm.getDeviceId();
    }
    if (null == deviceUniqueIdentifier || 0 == deviceUniqueIdentifier.length()) {
        deviceUniqueIdentifier = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
    }
    return deviceUniqueIdentifier;
}

Shridutt Kothari's user avatar

answered Apr 15, 2013 at 12:58

Asaf Pinhassi's user avatar

Asaf PinhassiAsaf Pinhassi

14.9k11 gold badges106 silver badges129 bronze badges

7

Or you can use the ANDROID_ID setting from Android.Provider.Settings.System (as described here strazerre.com).

This has the advantage that it doesn’t require special permissions but can change if another application has write access and changes it (which is apparently unusual but not impossible).

Just for reference here is the code from the blog:

import android.provider.Settings;
import android.provider.Settings.System;   

String androidID = System.getString(this.getContentResolver(),Secure.ANDROID_ID);

Implementation note: if the ID is critical to the system architecture you need to be aware that in practice some of the very low end Android phones & tablets have been found reusing the same ANDROID_ID (9774d56d682e549c was the value showing up in our logs)

Deivison Sporteman's user avatar

answered Oct 20, 2010 at 10:22

tonys's user avatar

tonystonys

3,84533 silver badges39 bronze badges

4

From: http://mytechead.wordpress.com/2011/08/28/how-to-get-imei-number-of-android-device/:

The following code helps in obtaining IMEI number of android devices :

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String device_id = tm.getDeviceId();

Permissions required in Android Manifest:

android.permission.READ_PHONE_STATE

NOTE: In case of tablets or devices which can’t act as Mobile Phone
IMEI will be null.

Dani's user avatar

Dani

3,7064 gold badges26 silver badges35 bronze badges

answered Apr 28, 2012 at 17:32

alchemist's user avatar

alchemistalchemist

1,08112 silver badges16 bronze badges

4

to get IMEI (international mobile equipment identifier)

public String getIMEI(Activity activity) {
    TelephonyManager telephonyManager = (TelephonyManager) activity
            .getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

to get device unique id

public String getDeviceUniqueID(Activity activity){
    String device_unique_id = Secure.getString(activity.getContentResolver(),
            Secure.ANDROID_ID);
    return device_unique_id;
}

answered Sep 24, 2014 at 4:17

Zin Win Htet's user avatar

Zin Win HtetZin Win Htet

2,3864 gold badges31 silver badges51 bronze badges

1

For Android 6.0+ the game has changed so i suggest you use this;

The best way to go is during runtime else you get permission errors.

   /**
 * A loading screen after AppIntroActivity.
 */
public class LoadingActivity extends BaseActivity {
private static final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 0;
private TextView loading_tv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loading);

    //trigger 'loadIMEI'
    loadIMEI();
    /** Fading Transition Effect */
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

/**
 * Called when the 'loadIMEI' function is triggered.
 */
public void loadIMEI() {
    // Check if the READ_PHONE_STATE permission is already available.
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
            != PackageManager.PERMISSION_GRANTED) {
        // READ_PHONE_STATE permission has not been granted.
        requestReadPhoneStatePermission();
    } else {
        // READ_PHONE_STATE permission is already been granted.
        doPermissionGrantedStuffs();
    }
}



/**
 * Requests the READ_PHONE_STATE permission.
 * If the permission has been denied previously, a dialog will prompt the user to grant the
 * permission, otherwise it is requested directly.
 */
private void requestReadPhoneStatePermission() {
    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.READ_PHONE_STATE)) {
        // Provide an additional rationale to the user if the permission was not granted
        // and the user would benefit from additional context for the use of the permission.
        // For example if the user has previously denied the permission.
        new AlertDialog.Builder(LoadingActivity.this)
                .setTitle("Permission Request")
                .setMessage(getString(R.string.permission_read_phone_state_rationale))
                .setCancelable(false)
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //re-request
                        ActivityCompat.requestPermissions(LoadingActivity.this,
                                new String[]{Manifest.permission.READ_PHONE_STATE},
                                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
                    }
                })
                .setIcon(R.drawable.onlinlinew_warning_sign)
                .show();
    } else {
        // READ_PHONE_STATE permission has not been granted yet. Request it directly.
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE},
                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
    }
}

/**
 * Callback received when a permissions request has been completed.
 */
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {

    if (requestCode == MY_PERMISSIONS_REQUEST_READ_PHONE_STATE) {
        // Received permission result for READ_PHONE_STATE permission.est.");
        // Check if the only required permission has been granted
        if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // READ_PHONE_STATE permission has been granted, proceed with displaying IMEI Number
            //alertAlert(getString(R.string.permision_available_read_phone_state));
            doPermissionGrantedStuffs();
        } else {
            alertAlert(getString(R.string.permissions_not_granted_read_phone_state));
          }
    }
}

private void alertAlert(String msg) {
    new AlertDialog.Builder(LoadingActivity.this)
            .setTitle("Permission Request")
            .setMessage(msg)
            .setCancelable(false)
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // do somthing here
                }
            })
            .setIcon(R.drawable.onlinlinew_warning_sign)
            .show();
}


public void doPermissionGrantedStuffs() {
    //Have an  object of TelephonyManager
    TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    //Get IMEI Number of Phone  //////////////// for this example i only need the IMEI
    String IMEINumber=tm.getDeviceId();

    /************************************************
     * **********************************************
     * This is just an icing on the cake
     * the following are other children of TELEPHONY_SERVICE
     *
     //Get Subscriber ID
     String subscriberID=tm.getDeviceId();

     //Get SIM Serial Number
     String SIMSerialNumber=tm.getSimSerialNumber();

     //Get Network Country ISO Code
     String networkCountryISO=tm.getNetworkCountryIso();

     //Get SIM Country ISO Code
     String SIMCountryISO=tm.getSimCountryIso();

     //Get the device software version
     String softwareVersion=tm.getDeviceSoftwareVersion()

     //Get the Voice mail number
     String voiceMailNumber=tm.getVoiceMailNumber();


     //Get the Phone Type CDMA/GSM/NONE
     int phoneType=tm.getPhoneType();

     switch (phoneType)
     {
     case (TelephonyManager.PHONE_TYPE_CDMA):
     // your code
     break;
     case (TelephonyManager.PHONE_TYPE_GSM)
     // your code
     break;
     case (TelephonyManager.PHONE_TYPE_NONE):
     // your code
     break;
     }

     //Find whether the Phone is in Roaming, returns true if in roaming
     boolean isRoaming=tm.isNetworkRoaming();
     if(isRoaming)
     phoneDetails+="nIs In Roaming : "+"YES";
     else
     phoneDetails+="nIs In Roaming : "+"NO";


     //Get the SIM state
     int SIMState=tm.getSimState();
     switch(SIMState)
     {
     case TelephonyManager.SIM_STATE_ABSENT :
     // your code
     break;
     case TelephonyManager.SIM_STATE_NETWORK_LOCKED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_PIN_REQUIRED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_PUK_REQUIRED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_READY :
     // your code
     break;
     case TelephonyManager.SIM_STATE_UNKNOWN :
     // your code
     break;

     }
     */
    // Now read the desired content to a textview.
    loading_tv2 = (TextView) findViewById(R.id.loading_tv2);
    loading_tv2.setText(IMEINumber);
}
}

Hope this helps you or someone.

answered May 2, 2016 at 2:15

The Billionaire Guy's user avatar

As in API 26 getDeviceId() is depreciated so you can use following code to cater API 26 and earlier versions

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei="";
if (android.os.Build.VERSION.SDK_INT >= 26) {
  imei=telephonyManager.getImei();
}
else
{
  imei=telephonyManager.getDeviceId();
}

Don’t forget to add permission requests for READ_PHONE_STATE to use the above code.

UPDATE:
From Android 10 its is restricted for user apps to get non-resettable hardware identifiers like IMEI.

Florian's user avatar

Florian

2,7661 gold badge14 silver badges25 bronze badges

answered Aug 17, 2017 at 11:10

Muhammad Hamza Shahid's user avatar

6

New Update:

For Android Version 6 And Above, WLAN MAC Address has been deprecated , follow Trevor Johns answer

Update:

For uniquely Identification of devices, You can Use Secure.ANDROID_ID.

Old Answer:

Disadvantages of using IMEI as Unique Device ID:

  • IMEI is dependent on the Simcard slot of the device, so it is not
    possible to get the IMEI for the devices that do not use Simcard.
    In Dual sim devices, we get 2 different IMEIs for the same device as it has 2 slots for simcard.

You can Use The WLAN MAC Address string (Not Recommended For Marshmallow and Marshmallow+ as WLAN MAC Address has been deprecated on Marshmallow forward. So you’ll get a bogus value)

We can get the Unique ID for android phones using the WLAN MAC address also. The MAC address is unique for all devices and it works for all kinds of devices.

Advantages of using WLAN MAC address as Device ID:

  • It is unique identifier for all type of devices (smart phones and
    tablets).

  • It remains unique if the application is reinstalled

Disadvantages of using WLAN MAC address as Device ID:

  • Give You a Bogus Value from Marshmallow and above.

  • If device doesn’t have wifi hardware then you get null MAC address,
    but generally it is seen that most of the Android devices have wifi
    hardware and there are hardly few devices in the market with no wifi
    hardware.

SOURCE : technetexperts.com

answered Jul 7, 2016 at 16:31

Jamil's user avatar

JamilJamil

5,3474 gold badges25 silver badges29 bronze badges

6

The method getDeviceId() of TelephonyManager returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.

Java Code

package com.AndroidTelephonyManager;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class AndroidTelephonyManager extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TextView textDeviceID = (TextView)findViewById(R.id.deviceid);

    //retrieve a reference to an instance of TelephonyManager
    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

    textDeviceID.setText(getDeviceID(telephonyManager));

}

String getDeviceID(TelephonyManager phonyManager){

 String id = phonyManager.getDeviceId();
 if (id == null){
  id = "not available";
 }

 int phoneType = phonyManager.getPhoneType();
 switch(phoneType){
 case TelephonyManager.PHONE_TYPE_NONE:
  return "NONE: " + id;

 case TelephonyManager.PHONE_TYPE_GSM:
  return "GSM: IMEI=" + id;

 case TelephonyManager.PHONE_TYPE_CDMA:
  return "CDMA: MEID/ESN=" + id;

 /*
  *  for API Level 11 or above
  *  case TelephonyManager.PHONE_TYPE_SIP:
  *   return "SIP";
  */

 default:
  return "UNKNOWN: ID=" + id;
 }

}
}

XML

<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
<textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello">
<textview android:id="@+id/deviceid" android:layout_height="wrap_content" android:layout_width="fill_parent">
</textview></textview></linearlayout> 

Permission Required
READ_PHONE_STATE in manifest file.

answered Jun 17, 2013 at 7:20

0

You can use this TelephonyManager TELEPHONY_SERVICE function to get unique device ID,
Requires Permission: READ_PHONE_STATE

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Example, the IMEI for GSM and the MEID or ESN for CDMA phones.

/**
 * Gets the device unique id called IMEI. Sometimes, this returns 00000000000000000 for the
 * rooted devices.
 **/
public static String getDeviceImei(Context ctx) {
    TelephonyManager telephonyManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

Return null if device ID is not available.

answered Sep 4, 2017 at 8:19

A-Droid Tech's user avatar

A-Droid TechA-Droid Tech

2,29123 silver badges33 bronze badges

2

Try this(need to get first IMEI always)

TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        if (ActivityCompat.checkSelfPermission(LoginActivity.this,Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {

         return;
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                if (mTelephony.getPhoneCount() == 2) {
                    IME = mTelephony.getImei(0);
                }else{
                    IME = mTelephony.getImei();
                }
            }else{
                if (mTelephony.getPhoneCount() == 2) {
                    IME = mTelephony.getDeviceId(0);
                } else {
                    IME = mTelephony.getDeviceId();
                }
            }
        } else {
            IME = mTelephony.getDeviceId();
        }

answered Mar 1, 2019 at 5:06

Arnold Brown's user avatar

Arnold BrownArnold Brown

1,29212 silver badges27 bronze badges

1

Use below code gives you IMEI number:

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
System.out.println("IMEI::" + telephonyManager.getDeviceId());

Vishal Yadav's user avatar

Vishal Yadav

3,6123 gold badges24 silver badges42 bronze badges

answered Dec 17, 2013 at 7:00

sharma_kunal's user avatar

sharma_kunalsharma_kunal

2,1321 gold badge28 silver badges28 bronze badges

The method getDeviceId() is deprecated.
There a new method for this getImei(int)

Check here

shizhen's user avatar

shizhen

12k9 gold badges52 silver badges87 bronze badges

answered Jun 28, 2018 at 13:41

Mikhail Valuyskiy's user avatar

1

You’ll need the following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

To get IMEI (international mobile equipment identifier) and if It is above API level 26 then we get telephonyManager.getImei() as null so for that, we use ANDROID_ID as a Unique Identifier.

 public static String getIMEINumber(@NonNull final Context context)
            throws SecurityException, NullPointerException {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String imei;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            assert tm != null;
            imei = tm.getImei();
            //this change is for Android 10 as per security concern it will not provide the imei number.
            if (imei == null) {
                imei = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
            }
        } else {
            assert tm != null;
            if (tm.getDeviceId() != null && !tm.getDeviceId().equals("000000000000000")) {
                imei = tm.getDeviceId();
            } else {
                imei = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
            }
        }

        return imei;
    }

answered Jan 16, 2020 at 14:13

Rahul's user avatar

RahulRahul

3,1672 gold badges28 silver badges42 bronze badges

For Android 10 Following code is working for me.

val uid: String = Settings.Secure.getString(ctx.applicationContext.contentResolver, Settings.Secure.ANDROID_ID)
if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
            imei = when {
                Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
                    uid
                }
                Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> {
                    telephonyManager.imei
                }
                else -> {
                    telephonyManager.deviceId
                }
            }
        }

answered May 26, 2020 at 16:11

Ani's user avatar

AniAni

1484 silver badges8 bronze badges

for API Level 11 or above:

case TelephonyManager.PHONE_TYPE_SIP: 
return "SIP";

TelephonyManager tm= (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
textDeviceID.setText(getDeviceID(tm));

Vishal Yadav's user avatar

Vishal Yadav

3,6123 gold badges24 silver badges42 bronze badges

answered May 24, 2013 at 12:39

Anil M H's user avatar

Anil M HAnil M H

3,3225 gold badges33 silver badges51 bronze badges

Kotlin Code for getting DeviceId ( IMEI ) with handling permission & comparability check for all android versions :

 val  telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
        == PackageManager.PERMISSION_GRANTED) {
        // Permission is  granted
        val imei : String? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)  telephonyManager.imei
        // older OS  versions
        else  telephonyManager.deviceId

        imei?.let {
            Log.i("Log", "DeviceId=$it" )
        }

    } else {  // Permission is not granted

    }

Also add this permission to AndroidManifest.xml :

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- IMEI-->

answered Dec 23, 2018 at 12:06

Hamed Jaliliani's user avatar

use below code:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        String[] permissions = {Manifest.permission.READ_PHONE_STATE};
        if (ActivityCompat.checkSelfPermission(this,
                Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(permissions, READ_PHONE_STATE);
        }
    } else {
        try {
            TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
            String imei = telephonyManager.getDeviceId();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

And call onRequestPermissionsResult method following code:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case READ_PHONE_STATE:
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED)
                try {
                    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                        return;
                    }
                    String imei = telephonyManager.getDeviceId();

                } catch (Exception e) {
                    e.printStackTrace();
                }
    }
}

Add following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

answered Feb 11, 2020 at 10:19

Fakhriddin Abdullaev's user avatar

1

For those looking for a Kotlin version, you can use something like this;

private fun telephonyService() {
    val telephonyManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager
    val imei = if (android.os.Build.VERSION.SDK_INT >= 26) {
        Timber.i("Phone >= 26 IMEI")
        telephonyManager.imei
    } else {
        Timber.i("Phone IMEI < 26")
        telephonyManager.deviceId
    }

    Timber.i("Phone IMEI $imei")
}

NOTE: You must wrap telephonyService() above with a permission check using checkSelfPermission or whatever method you use.

Also add this permission in the manifest file;

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

answered Dec 2, 2018 at 10:29

TitanKing's user avatar

There is no Way you can get imei number from andorid 10+ or 29+ mobiles here is the alternative function that will be used for creating imei number for devices.

public  static String getDeviceID(){
    String devIDShort = "35" + //we make this look like a valid IMEI
            Build.BOARD.length()%10+ Build.BRAND.length()%10 +
            Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
            Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
            Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
            Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
            Build.TAGS.length()%10 + Build.TYPE.length()%10 +
            Build.USER.length()%10 ; //13 digits

    return  devIDShort;
}

answered Jul 13, 2021 at 7:19

Fayyaz kharl's user avatar

2

Restriction on non-resettable device identifiers

Starting in Android 10, apps must have the READ_PRIVILEGED_PHONE_STATE privileged permission in order to access the device’s non-resettable identifiers, which include both IMEI and serial number.

answered Aug 1, 2021 at 16:21

Saranga  kapilarathna's user avatar

1

Asked
13 years, 1 month ago

Viewed
579k times

To identify each devices uniquely I would like to use the IMEI (or ESN number for CDMA devices). How to access this programmatically?

Jabberwocky's user avatar

Jabberwocky

46.6k17 gold badges57 silver badges108 bronze badges

asked Dec 29, 2009 at 0:52

Tom's user avatar

6

You want to call android.telephony.TelephonyManager.getDeviceId().

This will return whatever string uniquely identifies the device (IMEI on GSM, MEID for CDMA).

You’ll need the following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

in order to do this.

That being said, be careful about doing this. Not only will users wonder why your application is accessing their telephony stack, it might be difficult to migrate data over if the user gets a new device.

Update: As mentioned in the comments below, this is not a secure way to authenticate users, and raises privacy concerns. It is not recommended. Instead, look at the Google+ Login API if you want to implement a frictionless login system.

The Android Backup API is also available if you just want a lightweight way to persist a bundle of strings for when a user resets their phone (or buys a new device).

solidak's user avatar

solidak

5,0033 gold badges30 silver badges33 bronze badges

answered Dec 29, 2009 at 1:01

Trevor Johns's user avatar

Trevor JohnsTrevor Johns

15.6k3 gold badges55 silver badges54 bronze badges

13

In addition to the answer of Trevor Johns, you can use this as follows:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.getDeviceId();

And you should add the following permission into your Manifest.xml file:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

In emulator, you’ll probably get a like a «00000…» value. getDeviceId() returns NULL if device ID is not available.

answered Jun 9, 2010 at 19:44

Taner's user avatar

TanerTaner

4,5013 gold badges17 silver badges14 bronze badges

6

I use the following code to get the IMEI or use Secure.ANDROID_ID as an alternative, when the device doesn’t have phone capabilities:

/**
 * Returns the unique identifier for the device
 *
 * @return unique identifier for the device
 */
public String getDeviceIMEI() {
    String deviceUniqueIdentifier = null;
    TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
    if (null != tm) {
        deviceUniqueIdentifier = tm.getDeviceId();
    }
    if (null == deviceUniqueIdentifier || 0 == deviceUniqueIdentifier.length()) {
        deviceUniqueIdentifier = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
    }
    return deviceUniqueIdentifier;
}

Shridutt Kothari's user avatar

answered Apr 15, 2013 at 12:58

Asaf Pinhassi's user avatar

Asaf PinhassiAsaf Pinhassi

14.9k11 gold badges106 silver badges129 bronze badges

7

Or you can use the ANDROID_ID setting from Android.Provider.Settings.System (as described here strazerre.com).

This has the advantage that it doesn’t require special permissions but can change if another application has write access and changes it (which is apparently unusual but not impossible).

Just for reference here is the code from the blog:

import android.provider.Settings;
import android.provider.Settings.System;   

String androidID = System.getString(this.getContentResolver(),Secure.ANDROID_ID);

Implementation note: if the ID is critical to the system architecture you need to be aware that in practice some of the very low end Android phones & tablets have been found reusing the same ANDROID_ID (9774d56d682e549c was the value showing up in our logs)

Deivison Sporteman's user avatar

answered Oct 20, 2010 at 10:22

tonys's user avatar

tonystonys

3,84533 silver badges39 bronze badges

4

From: http://mytechead.wordpress.com/2011/08/28/how-to-get-imei-number-of-android-device/:

The following code helps in obtaining IMEI number of android devices :

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String device_id = tm.getDeviceId();

Permissions required in Android Manifest:

android.permission.READ_PHONE_STATE

NOTE: In case of tablets or devices which can’t act as Mobile Phone
IMEI will be null.

Dani's user avatar

Dani

3,7064 gold badges26 silver badges35 bronze badges

answered Apr 28, 2012 at 17:32

alchemist's user avatar

alchemistalchemist

1,08112 silver badges16 bronze badges

4

to get IMEI (international mobile equipment identifier)

public String getIMEI(Activity activity) {
    TelephonyManager telephonyManager = (TelephonyManager) activity
            .getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

to get device unique id

public String getDeviceUniqueID(Activity activity){
    String device_unique_id = Secure.getString(activity.getContentResolver(),
            Secure.ANDROID_ID);
    return device_unique_id;
}

answered Sep 24, 2014 at 4:17

Zin Win Htet's user avatar

Zin Win HtetZin Win Htet

2,3864 gold badges31 silver badges51 bronze badges

1

For Android 6.0+ the game has changed so i suggest you use this;

The best way to go is during runtime else you get permission errors.

   /**
 * A loading screen after AppIntroActivity.
 */
public class LoadingActivity extends BaseActivity {
private static final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 0;
private TextView loading_tv2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_loading);

    //trigger 'loadIMEI'
    loadIMEI();
    /** Fading Transition Effect */
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

/**
 * Called when the 'loadIMEI' function is triggered.
 */
public void loadIMEI() {
    // Check if the READ_PHONE_STATE permission is already available.
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
            != PackageManager.PERMISSION_GRANTED) {
        // READ_PHONE_STATE permission has not been granted.
        requestReadPhoneStatePermission();
    } else {
        // READ_PHONE_STATE permission is already been granted.
        doPermissionGrantedStuffs();
    }
}



/**
 * Requests the READ_PHONE_STATE permission.
 * If the permission has been denied previously, a dialog will prompt the user to grant the
 * permission, otherwise it is requested directly.
 */
private void requestReadPhoneStatePermission() {
    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.READ_PHONE_STATE)) {
        // Provide an additional rationale to the user if the permission was not granted
        // and the user would benefit from additional context for the use of the permission.
        // For example if the user has previously denied the permission.
        new AlertDialog.Builder(LoadingActivity.this)
                .setTitle("Permission Request")
                .setMessage(getString(R.string.permission_read_phone_state_rationale))
                .setCancelable(false)
                .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        //re-request
                        ActivityCompat.requestPermissions(LoadingActivity.this,
                                new String[]{Manifest.permission.READ_PHONE_STATE},
                                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
                    }
                })
                .setIcon(R.drawable.onlinlinew_warning_sign)
                .show();
    } else {
        // READ_PHONE_STATE permission has not been granted yet. Request it directly.
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE},
                MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
    }
}

/**
 * Callback received when a permissions request has been completed.
 */
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {

    if (requestCode == MY_PERMISSIONS_REQUEST_READ_PHONE_STATE) {
        // Received permission result for READ_PHONE_STATE permission.est.");
        // Check if the only required permission has been granted
        if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // READ_PHONE_STATE permission has been granted, proceed with displaying IMEI Number
            //alertAlert(getString(R.string.permision_available_read_phone_state));
            doPermissionGrantedStuffs();
        } else {
            alertAlert(getString(R.string.permissions_not_granted_read_phone_state));
          }
    }
}

private void alertAlert(String msg) {
    new AlertDialog.Builder(LoadingActivity.this)
            .setTitle("Permission Request")
            .setMessage(msg)
            .setCancelable(false)
            .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // do somthing here
                }
            })
            .setIcon(R.drawable.onlinlinew_warning_sign)
            .show();
}


public void doPermissionGrantedStuffs() {
    //Have an  object of TelephonyManager
    TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    //Get IMEI Number of Phone  //////////////// for this example i only need the IMEI
    String IMEINumber=tm.getDeviceId();

    /************************************************
     * **********************************************
     * This is just an icing on the cake
     * the following are other children of TELEPHONY_SERVICE
     *
     //Get Subscriber ID
     String subscriberID=tm.getDeviceId();

     //Get SIM Serial Number
     String SIMSerialNumber=tm.getSimSerialNumber();

     //Get Network Country ISO Code
     String networkCountryISO=tm.getNetworkCountryIso();

     //Get SIM Country ISO Code
     String SIMCountryISO=tm.getSimCountryIso();

     //Get the device software version
     String softwareVersion=tm.getDeviceSoftwareVersion()

     //Get the Voice mail number
     String voiceMailNumber=tm.getVoiceMailNumber();


     //Get the Phone Type CDMA/GSM/NONE
     int phoneType=tm.getPhoneType();

     switch (phoneType)
     {
     case (TelephonyManager.PHONE_TYPE_CDMA):
     // your code
     break;
     case (TelephonyManager.PHONE_TYPE_GSM)
     // your code
     break;
     case (TelephonyManager.PHONE_TYPE_NONE):
     // your code
     break;
     }

     //Find whether the Phone is in Roaming, returns true if in roaming
     boolean isRoaming=tm.isNetworkRoaming();
     if(isRoaming)
     phoneDetails+="nIs In Roaming : "+"YES";
     else
     phoneDetails+="nIs In Roaming : "+"NO";


     //Get the SIM state
     int SIMState=tm.getSimState();
     switch(SIMState)
     {
     case TelephonyManager.SIM_STATE_ABSENT :
     // your code
     break;
     case TelephonyManager.SIM_STATE_NETWORK_LOCKED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_PIN_REQUIRED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_PUK_REQUIRED :
     // your code
     break;
     case TelephonyManager.SIM_STATE_READY :
     // your code
     break;
     case TelephonyManager.SIM_STATE_UNKNOWN :
     // your code
     break;

     }
     */
    // Now read the desired content to a textview.
    loading_tv2 = (TextView) findViewById(R.id.loading_tv2);
    loading_tv2.setText(IMEINumber);
}
}

Hope this helps you or someone.

answered May 2, 2016 at 2:15

The Billionaire Guy's user avatar

As in API 26 getDeviceId() is depreciated so you can use following code to cater API 26 and earlier versions

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei="";
if (android.os.Build.VERSION.SDK_INT >= 26) {
  imei=telephonyManager.getImei();
}
else
{
  imei=telephonyManager.getDeviceId();
}

Don’t forget to add permission requests for READ_PHONE_STATE to use the above code.

UPDATE:
From Android 10 its is restricted for user apps to get non-resettable hardware identifiers like IMEI.

Florian's user avatar

Florian

2,7661 gold badge14 silver badges25 bronze badges

answered Aug 17, 2017 at 11:10

Muhammad Hamza Shahid's user avatar

6

New Update:

For Android Version 6 And Above, WLAN MAC Address has been deprecated , follow Trevor Johns answer

Update:

For uniquely Identification of devices, You can Use Secure.ANDROID_ID.

Old Answer:

Disadvantages of using IMEI as Unique Device ID:

  • IMEI is dependent on the Simcard slot of the device, so it is not
    possible to get the IMEI for the devices that do not use Simcard.
    In Dual sim devices, we get 2 different IMEIs for the same device as it has 2 slots for simcard.

You can Use The WLAN MAC Address string (Not Recommended For Marshmallow and Marshmallow+ as WLAN MAC Address has been deprecated on Marshmallow forward. So you’ll get a bogus value)

We can get the Unique ID for android phones using the WLAN MAC address also. The MAC address is unique for all devices and it works for all kinds of devices.

Advantages of using WLAN MAC address as Device ID:

  • It is unique identifier for all type of devices (smart phones and
    tablets).

  • It remains unique if the application is reinstalled

Disadvantages of using WLAN MAC address as Device ID:

  • Give You a Bogus Value from Marshmallow and above.

  • If device doesn’t have wifi hardware then you get null MAC address,
    but generally it is seen that most of the Android devices have wifi
    hardware and there are hardly few devices in the market with no wifi
    hardware.

SOURCE : technetexperts.com

answered Jul 7, 2016 at 16:31

Jamil's user avatar

JamilJamil

5,3474 gold badges25 silver badges29 bronze badges

6

The method getDeviceId() of TelephonyManager returns the unique device ID, for example, the IMEI for GSM and the MEID or ESN for CDMA phones. Return null if device ID is not available.

Java Code

package com.AndroidTelephonyManager;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class AndroidTelephonyManager extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    TextView textDeviceID = (TextView)findViewById(R.id.deviceid);

    //retrieve a reference to an instance of TelephonyManager
    TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

    textDeviceID.setText(getDeviceID(telephonyManager));

}

String getDeviceID(TelephonyManager phonyManager){

 String id = phonyManager.getDeviceId();
 if (id == null){
  id = "not available";
 }

 int phoneType = phonyManager.getPhoneType();
 switch(phoneType){
 case TelephonyManager.PHONE_TYPE_NONE:
  return "NONE: " + id;

 case TelephonyManager.PHONE_TYPE_GSM:
  return "GSM: IMEI=" + id;

 case TelephonyManager.PHONE_TYPE_CDMA:
  return "CDMA: MEID/ESN=" + id;

 /*
  *  for API Level 11 or above
  *  case TelephonyManager.PHONE_TYPE_SIP:
  *   return "SIP";
  */

 default:
  return "UNKNOWN: ID=" + id;
 }

}
}

XML

<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
<textview android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello">
<textview android:id="@+id/deviceid" android:layout_height="wrap_content" android:layout_width="fill_parent">
</textview></textview></linearlayout> 

Permission Required
READ_PHONE_STATE in manifest file.

answered Jun 17, 2013 at 7:20

0

You can use this TelephonyManager TELEPHONY_SERVICE function to get unique device ID,
Requires Permission: READ_PHONE_STATE

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Example, the IMEI for GSM and the MEID or ESN for CDMA phones.

/**
 * Gets the device unique id called IMEI. Sometimes, this returns 00000000000000000 for the
 * rooted devices.
 **/
public static String getDeviceImei(Context ctx) {
    TelephonyManager telephonyManager = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
    return telephonyManager.getDeviceId();
}

Return null if device ID is not available.

answered Sep 4, 2017 at 8:19

A-Droid Tech's user avatar

A-Droid TechA-Droid Tech

2,29123 silver badges33 bronze badges

2

Try this(need to get first IMEI always)

TelephonyManager mTelephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        if (ActivityCompat.checkSelfPermission(LoginActivity.this,Manifest.permission.READ_PHONE_STATE)!= PackageManager.PERMISSION_GRANTED) {

         return;
}

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                if (mTelephony.getPhoneCount() == 2) {
                    IME = mTelephony.getImei(0);
                }else{
                    IME = mTelephony.getImei();
                }
            }else{
                if (mTelephony.getPhoneCount() == 2) {
                    IME = mTelephony.getDeviceId(0);
                } else {
                    IME = mTelephony.getDeviceId();
                }
            }
        } else {
            IME = mTelephony.getDeviceId();
        }

answered Mar 1, 2019 at 5:06

Arnold Brown's user avatar

Arnold BrownArnold Brown

1,29212 silver badges27 bronze badges

1

Use below code gives you IMEI number:

TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
System.out.println("IMEI::" + telephonyManager.getDeviceId());

Vishal Yadav's user avatar

Vishal Yadav

3,6123 gold badges24 silver badges42 bronze badges

answered Dec 17, 2013 at 7:00

sharma_kunal's user avatar

sharma_kunalsharma_kunal

2,1321 gold badge28 silver badges28 bronze badges

The method getDeviceId() is deprecated.
There a new method for this getImei(int)

Check here

shizhen's user avatar

shizhen

12k9 gold badges52 silver badges87 bronze badges

answered Jun 28, 2018 at 13:41

Mikhail Valuyskiy's user avatar

1

You’ll need the following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

To get IMEI (international mobile equipment identifier) and if It is above API level 26 then we get telephonyManager.getImei() as null so for that, we use ANDROID_ID as a Unique Identifier.

 public static String getIMEINumber(@NonNull final Context context)
            throws SecurityException, NullPointerException {
        TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        String imei;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            assert tm != null;
            imei = tm.getImei();
            //this change is for Android 10 as per security concern it will not provide the imei number.
            if (imei == null) {
                imei = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
            }
        } else {
            assert tm != null;
            if (tm.getDeviceId() != null && !tm.getDeviceId().equals("000000000000000")) {
                imei = tm.getDeviceId();
            } else {
                imei = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
            }
        }

        return imei;
    }

answered Jan 16, 2020 at 14:13

Rahul's user avatar

RahulRahul

3,1672 gold badges28 silver badges42 bronze badges

For Android 10 Following code is working for me.

val uid: String = Settings.Secure.getString(ctx.applicationContext.contentResolver, Settings.Secure.ANDROID_ID)
if (ContextCompat.checkSelfPermission(ctx, Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) {
            imei = when {
                Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
                    uid
                }
                Build.VERSION.SDK_INT >= Build.VERSION_CODES.O -> {
                    telephonyManager.imei
                }
                else -> {
                    telephonyManager.deviceId
                }
            }
        }

answered May 26, 2020 at 16:11

Ani's user avatar

AniAni

1484 silver badges8 bronze badges

for API Level 11 or above:

case TelephonyManager.PHONE_TYPE_SIP: 
return "SIP";

TelephonyManager tm= (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
textDeviceID.setText(getDeviceID(tm));

Vishal Yadav's user avatar

Vishal Yadav

3,6123 gold badges24 silver badges42 bronze badges

answered May 24, 2013 at 12:39

Anil M H's user avatar

Anil M HAnil M H

3,3225 gold badges33 silver badges51 bronze badges

Kotlin Code for getting DeviceId ( IMEI ) with handling permission & comparability check for all android versions :

 val  telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
        == PackageManager.PERMISSION_GRANTED) {
        // Permission is  granted
        val imei : String? = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)  telephonyManager.imei
        // older OS  versions
        else  telephonyManager.deviceId

        imei?.let {
            Log.i("Log", "DeviceId=$it" )
        }

    } else {  // Permission is not granted

    }

Also add this permission to AndroidManifest.xml :

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <!-- IMEI-->

answered Dec 23, 2018 at 12:06

Hamed Jaliliani's user avatar

use below code:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        String[] permissions = {Manifest.permission.READ_PHONE_STATE};
        if (ActivityCompat.checkSelfPermission(this,
                Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(permissions, READ_PHONE_STATE);
        }
    } else {
        try {
            TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                return;
            }
            String imei = telephonyManager.getDeviceId();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

And call onRequestPermissionsResult method following code:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    switch (requestCode) {
        case READ_PHONE_STATE:
            if (grantResults.length > 0
                    && grantResults[0] == PackageManager.PERMISSION_GRANTED)
                try {
                    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                        return;
                    }
                    String imei = telephonyManager.getDeviceId();

                } catch (Exception e) {
                    e.printStackTrace();
                }
    }
}

Add following permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

answered Feb 11, 2020 at 10:19

Fakhriddin Abdullaev's user avatar

1

For those looking for a Kotlin version, you can use something like this;

private fun telephonyService() {
    val telephonyManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager
    val imei = if (android.os.Build.VERSION.SDK_INT >= 26) {
        Timber.i("Phone >= 26 IMEI")
        telephonyManager.imei
    } else {
        Timber.i("Phone IMEI < 26")
        telephonyManager.deviceId
    }

    Timber.i("Phone IMEI $imei")
}

NOTE: You must wrap telephonyService() above with a permission check using checkSelfPermission or whatever method you use.

Also add this permission in the manifest file;

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

answered Dec 2, 2018 at 10:29

TitanKing's user avatar

There is no Way you can get imei number from andorid 10+ or 29+ mobiles here is the alternative function that will be used for creating imei number for devices.

public  static String getDeviceID(){
    String devIDShort = "35" + //we make this look like a valid IMEI
            Build.BOARD.length()%10+ Build.BRAND.length()%10 +
            Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +
            Build.DISPLAY.length()%10 + Build.HOST.length()%10 +
            Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +
            Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +
            Build.TAGS.length()%10 + Build.TYPE.length()%10 +
            Build.USER.length()%10 ; //13 digits

    return  devIDShort;
}

answered Jul 13, 2021 at 7:19

Fayyaz kharl's user avatar

2

Restriction on non-resettable device identifiers

Starting in Android 10, apps must have the READ_PRIVILEGED_PHONE_STATE privileged permission in order to access the device’s non-resettable identifiers, which include both IMEI and serial number.

answered Aug 1, 2021 at 16:21

Saranga  kapilarathna's user avatar

1

IMEI, что это такое и как его узнать? Все телефоны, начиная от простого кнопочного и заканчивая дорогим мощным смартфоном, имеют свой уникальный международный идентификационный номер оборудования, больше известен как IMEI. Обычно это номер содержит 15 или 16 цифр, а операторы связи используют его для идентификации устройств, зарегистрированных в сетях. IMEI уникален и сложный для изменения, по нему можно заблокировать регистрацию в сети потерянного или украденного телефона. В некоторых случаях по IMEI даже можно отследить местоположение телефона.

Но как узнать IMEI телефона? Я знаю несколько способов узнать IMEI это ввести специальный код на клавиатуре, посмотреть в настройках, посмотреть в данные об учетной записи и другие. Все эти способы я пошагово расписал ниже.

ПРИМЕЧАНИЕ. Серийные номера и номера IMEI на изображениях ниже были размыты специально.


Как узнать номер IMEI любого телефона, iPhone или Андроид:

Способ №1: Наберите *#06#

Не имеет значения, какой у вас телефон, это может быть iPhone, Samsung или Xiaomi. Если вы введете *#06# на экране набора номера, появиться IMEI номер вашего телефона. На некоторых телефонах, может понадобиться нажать кнопку ПОЗВОНИТЬ, чтобы код сработал.


Способ №2: Посмотрите в настройках

Узнать номер IMEI также можно зайдя настройки телефона. В iPhone вы найдете его по этому пути: «Настройки» > «Основные» > «О программе». В телефонах Samsung Galaxy и Xiaomi — «Настройки» > «О телефоне».


Способ №3: IMEI может быть написан на самом телефоне

У некоторых телефонах номер IMEI выгравирован на задней панели, также там может быть серийный номер и различные нормативные акты. Но, этот способ действителен только для старых моделей, таких как Galaxy S7 или iPhone 6. На новых моделях телефонов вы их не найдете, так как производители стремятся, чтобы их смартфоны выглядели максимально чистыми.


Способ №3: Посмотри лоток SIM-карты

Производители все же должны где-то указывать IMEI своих телефонов. Вот почему многие из них стали гравировать его на лотке SIM-карты. Если у вас нет инструмента для извлечения SIM-карты, воспользуйтесь обычной канцелярской скрепкой.

По теме: 6 способов достать сим карту из телефона


Способ №4: Посмотрите на коробке от телефона

Кроме перечисленного выше, номер IMEI телефона можно посмотреть на коробке в которой он находился при покупке. Иногда, это единственный вариант узнать IMEI телефона, если он потерян или украден.


Способ №6: Посмотреть свой IMEI в iCloud (только для iPhone)

Это только для владельцев iPhone. Зайдите на appleid.apple.com и введите свой Apple ID и пароль от него. После входа вы увидите список всех ваших устройств Apple. Нажмите на тот, чей IMEI вы хотите узнать.


Способ №7: Посмотрите IMEI с другого iOS-устройства (только для iPhone).

Вы можете посмотреть IMEI одного iPhone с другого iPhone, на котором вошли в тот же Apple ID. Для этого перейдите в «Настройки» и нажмите на свое имя в самом верху и прокрутите вниз. Здесь вы увидите список всех ваших устройств. Нажмите на то устройство, чей IMEI хотите узнать.


Заключение

Друзья, если у вас остались вопросы по тому, как узнать IMEI телефона, задавайте их в комментариях ниже.

gorban

gorbanhttps://xpcom.ru

Старший редактор xpcom.ru. Ему нравится все, что связано с технологиями, включая планшеты, смартфоны и все, что между ними.


Загрузить PDF


Загрузить PDF

Из этой статьи вы узнаете, как выяснить серийный номер смартфона, не разбирая его. Найти серийный номер обычного телефона немного сложнее, но это можно сделать на корпусе устройства или в документации к нему.

  1. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 1

    1

    Запустите приложение «Настройки»

    Изображение с названием Iphonesettingsappicon.png

    . Нажмите на значок в виде шестеренок на сером фоне.

  2. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 2

    2

    Прокрутите вниз и нажмите «Основные»

    Изображение с названием Iphonesettingsgeneralicon.png

    . Эта опция находится в верхней части страницы настроек.

  3. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 3

    3

    Коснитесь Об этом устройстве. Эта опция находится в верхней части страницы «Основные».

  4. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 4

    4

    Прокрутите вниз до строки «Серийный номер». Вы найдете ее посередине страницы «Об этом устройстве».

  5. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 5

    5

    Найдите серийный номер. Серийный номер — это набор цифр и букв, который отображается в строке «Серийный номер».

    Реклама

  1. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 6

    1

    Запустите приложение «Настройки». Проведите по экрану сверху вниз и коснитесь значка приложения «Настройки», который выглядит как шестеренка

    Изображение с названием Android7settings.png

    и расположен в правом верхнем углу меню.

    • На некоторых Android-устройствах нужно провести по экрану двумя пальцами.
  2. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 7

    2

    Прокрутите вниз и нажмите О смартфоне. Эта опция находится в самом низу страницы настроек.

    • Возможно, сначала вам придется нажать «Система» внизу меню.
  3. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 8

    3

    Найдите строку «Серийный номер». Ее расположение зависит от модели Android-устройства; прокрутите вниз, пока не найдете строку «Серийный номер» на странице «О смартфоне».

    • На некоторых Android-устройствах вам, возможно, придется нажать «Статус», чтобы отобразить строку «Серийный номер». Также на некоторых устройствах нужно нажать на «Серийный номер», чтобы отобразить серийный номер.
  4. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 9

    4

    Найдите серийный номер. Серийный номер — это набор цифр и букв, который отображается в строке «Серийный номер».

    Реклама

  1. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 10

    1

    Поищите серийный номер на корпусе телефона. Некоторые производители телефонов наносят серийный номер на заднюю или боковую поверхность устройства (если на телефон надет чехол, снимите его).

    • Такое расположение серийного номера встречается довольно редко, но все-таки стоит испробовать этот метод.
  2. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 11

    2

    Поищите серийный номер на внутренней стороне крышки батарейного отсека. Для этого сначала снимите ее. Обратите внимание, что разбирать телефон не нужно, потому крышки большинства телефонов снимаются довольно легко.

    • Прежде чем снять крышку телефона, выключите его.
  3. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 12

    3

    Откройте меню «Настройки». Если на телефоне есть клавиша «MENU» (Меню) или «SETTINGS» (Настройки), нажмите на ее, а затем найдите и коснитесь опции «О телефоне» или «Информация». Теперь найдите серийный номер, прокрутив страницу с помощью клавиш со стрелками.[1]

  4. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 13

    4

    Поищите серийный номер на упаковке или в квитанции к телефону. Если у вас осталась коробка или квитанция, поищите серийный номер на наклейке на коробке или в нижней части квитанции.

  5. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 14

    5

    Поищите серийный номер на сайте своего оператора сотовой связи. Некоторые операторы мобильной связи размещают серийные номера телефонов на страницах аккаунтов пользователей. Поэтому откройте сайт своего оператора, войдите в свой аккаунт и поищите серийный номер телефона.

    • Чтобы войти в свою учетную запись, введите адрес электронной почты и пароль. Если вы не знаете свои учетные данные, свяжитесь со своим оператором.
  6. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 15

    6

    Позвоните в офис своего оператора мобильной связи и узнайте серийный номер телефона. Сделайте это, если вам не удалось найти серийный номер на корпусе телефоне, на его упаковке или в своем аккаунте.

    • Чтобы оператор сообщил вам серийный номер, вам придется назвать имя, дату рождения, PIN-код и некоторую другую информацию.
  7. Изображение с названием Find Your Mobile Phone's Serial Number Without Taking it Apart Step 16

    7

    Свяжитесь с производителем телефона, чтобы узнать у него серийный номер. Если у вас так и не получилось найти серийный номер, свяжитесь с компанией-производителем телефона (а не с оператором сотовой связи).

    • Samsung и Lumia — это производители телефонов, а Билайн и МТС — это операторы мобильной связи.

    Реклама

Советы

  • Если вы хотите починить или заменить смартфон, ваш оператор может запросить номер IMEI, ESN или MEID. Этот номер отличается от серийного номера, но обычно находится в том же меню (например, в разделе «Об этом устройстве» на iPhone или в разделе «О смартфоне» на Android).[2]
  • Если ничего не помогло и вам нужно разобрать телефон, ищите серийный номер:
    • на аккумуляторе (под крышкой)
    • за батареей
    • на слоте для SIM-карты (сначала вытащите SIM-карту)

Реклама

Предупреждения

  • Иногда серийный номер наносят на заднюю панель корпуса телефона, что с течением времени приводит к стиранию номера. В этом случае ищите номер в инструкции к телефону или на его упаковке.

Реклама

Об этой статье

Эту страницу просматривали 35 384 раза.

Была ли эта статья полезной?

В процессе приобретения любого современного устройства, будь то смартфон, планшет, ноутбук или «умные» часы, покупатель должен удостовериться, что получает качественный и оригинальный товар. Ведь не секрет, что сегодня случаи продажи «серых» трубок под видом уникальных гаджетов возросли в несколько раз.

«Нарваться» на подделку может каждый, если, конечно, не знает, как отличить ее от оригинала. Одним из способов выявления разницы является определение серийного номера. Он присваивается каждому устройству и является единственным в своем роде. В каждой комбинации хранится много важной информации, которая способна раскрыть некоторые секреты о мобильном устройстве. Главное, узнать, где можно отыскать уникальный код и как правильно его расшифровать.

Содержание

  • Что такое серийный номер телефона
  • Для чего нужно знать серийный номер
  • Как узнать серийный номер телефона
  • Бонус: расшифровка информации из серийного номера

Что такое серийный номер телефона

Владельцы мобильных гаджетов часто путают IMEI и заводской номер аппарата. Однако два этих идентификатора выполняют различные задачи.

Первый представляет собой уникальный код, по которому можно отследить устройство и определить его местоположение. Он также является уникальным и присваивается в индивидуальном порядке.

Второй именуется как Serial Number или SN, и представляет собой комбинацию из арабских цифр и латинских букв. В этой непонятной и сложной для запоминания комбинации кроется важная информация, касающаяся как завода-изготовителя, так и характеристик самого девайса.

image

Каждый производитель использует индивидуальный тип кодировки, основанный на правилах, разработанных самой компанией, поэтому расшифровать ее крайне сложно. Зато можно быстро проверить устройство на подлинность.

Для чего нужно знать серийный номер

Заводской номер является уникальным и присваивается каждому устройству. Но мало кто задумывался о том, зачем же он нужен и как может пригодиться в повседневной жизни?

Кому необходим заводской номер? Для чего?
Компании-изготовителю Они отслеживают каждый девайс с целью:

выявления бракованной партии продукции на раннем этапе до отправки;

организации сервисного обслуживания для устранения брака;

привлечения виновных к ответу;

обеспечения сервисного ремонта и исключения гарантийных претензий.

Производителю комплектующих С целью поставок запасных частей в центры сервисного обслуживания клиентов. Если в поисковой базе указанный номер будет отсутствовать, значит, товар будет считаться «серым».
Обычному потребителю Любой покупатель вправе проверить оригинальность устройства, прежде чем его приобрести

Серийный номер позволяет узнать, имело ли устройство производственный брак и производился ли ремонт незадолго перед продажей.

Как узнать серийный номер телефона

Где найти серийный номер того или иного устройства? В первую очередь, на официальном сайте производителя. Для повышения качества услуг сегодня многие компании включают опцию проверки подлинности товара посредством заводской маркировки.

image

Когда же речь идет о мобильных телефонах, то есть несколько других дополнительных вариантов, где можно отыскать уникальную комбинацию под названием Serial Number или S/N. В зависимости от модели и марки девайса они с высокой долей вероятности будут отличаться, однако, есть места, в которых маркировка точно будет находиться.

На упаковке

Найти заводскую кодировку достаточно легко, если производитель пошел по распространенному пути, когда на внешнюю сторону упаковки наносится специальный заводской ярлык. Здесь можно встретить следующие элементы:

  • несколько штрих-кодов;
  • IMEI, то есть идентификационный код устройства;
  • Название страны-изготовителя;
  • дату выпуска;
  • цвет корпуса;
  • ROM;
  • RAM;
  • серийный номер.

Обычно наклейка крепится на боковую или заднюю поверхность коробки. Второй вариант встречается чаще.

image

Под батареей

Благодаря развитию современных технологий, мобильные устройства последних поколений поставляются с встроенными батареями. Поэтому существует два пути поиска серийного номера.

Вариант первый

Если владельцу достался смартфон со съемной задней панелью и аккумулятором, то под ним на внутренней поверхности корпуса будет находиться заводская табличка. Помимо фирменных опознавательных элементов и прочих характеристик, указанных в предыдущем пункте, на ней должен быть нанесен и серийный номер. Как правило, он находится в самом «подвале» под штрих-кодом, то есть занимает одну из нижних строк. Опознать комбинацию можно по указателю «S/N». Табличка имеет небольшие размеры, поэтому вся информация наносится мелким шрифтом. Чтобы прочесть ее, целесообразно воспользоваться лупой.

image

Вариант второй

Если же снимается только задняя часть корпуса, то заводской код нужно искать на аккумуляторе (под крышкой), реже на слоте SIM-карты (но вначале ее нужно изъять). Некоторые производители наносят серийный номер на заднюю панель корпуса смартфона с внешней стороны, что с течением времени приводит к его истиранию. В этом случае целесообразно обратиться к прилагаемой инструкции и поискать заводскую маркировку там. Но целесообразнее выяснить этот пункт через системные настройки.

image

В настройках

Тем, кто имеет проблемы со зрением либо не любит заниматься разборкой смартфонов, подойдет вариант поиска серийный номер через системное меню. Чтобы отыскать заводскую маркировку в программном обеспечении, потребуется:

Если все сделано правильно, должна открыться страница, где будут содержаться основные сведения об устройстве. В самом низу будет находиться его серийный номер. И все же увидеть его удается не всегда. Для этого нужно вернуться в предыдущий раздел и перебрать доступные опции. Возможно, данный параметр будет находиться там.

Бонус: расшифровка информации из серийного номера

Как упоминалось ранее, каждый производитель использует индивидуальный тип кодировки, созданный в соответствии с правилами, действующими в компании. Расшифровать комбинацию бывает крайне сложно, но возможно. Какую же информацию хранит серийный номер и о чем может «поведать» он обычному пользователю?

В большинстве случаев серийный номер состоит из 11 знаков и имеет следующий формат: AABCCDDDEEF, где:

  • две первые буквы «AA» являются идентификатором завода-изготовителя;
  • символ «B» указывает на год выпуска конкретной модели;
  • пара «CC» обозначает производственную неделю;
  • тройка букв «DDD» является уникальным идентификатором устройства;
  • по двум предпоследним символам можно узнать о цвете модели;
  • конечная позиция содержит сведения об объеме встроенной памяти.

Как видно, нелепая на первый взгляд буквенно-цифровая комбинация таит в себе много интересной информации, которую можно использовать по своему усмотрению.

Итак, серийный номер мобильного телефона – это уникальная комбинация, состоящая из латинских букв и арабских цифр. Он служит для идентификации девайса и проверки его подлинности. Неповторимая комбинация содержит информацию, как о компании-изготовителе, так и характеристиках мобильного устройства. Отыскать уникальный код можно в разных местах, но чтобы убедиться в оригинальности гаджета следует сверить все номера – в идеале они должны совпадать.

image

Поэтому для полной уверенности стоит воспользоваться и другими способами проверки, например, с помощью IMEI. Но подробнее об этом способе идентификации – в другой статье.

IMEI… как много в этом звуке

Чего-то там для нас слилось.

И мы зачем-то непонятно

Хотим узнать, какой же он…

IMEI (международный идентификатор мобильного устройства) – это заводской 15-значный числовой код, уникальный для каждой единицы смартфона, кнопочного телефона, планшета с SIM-картой, smart-часов и других переносных девайсов, поддерживающих сотовую связь.

IMEI телефона служит ему чем-то вроде удостоверения личности при подключении к базовым станциям мобильных операторов. По этому «удостоверению» телефонные системы опознают, регистрируют устройство и «выписывают» ему пропуск в сеть.

А поскольку «ИМЕЙ» – уникальный идентификатор, зная его, можно выведать о телефоне некоторые интересные сведения. Какие и чем это грозит, читайте дальше.

Содержание

  1. 4 основных и несколько дополнительных способов узнать IMEI любого гаджета
  2. Основные
  3. Дополнительные
  4. Можно ли изменить IMEI
  5. Что можно узнать по «ИМЕЙ» об устройстве и владельце
  6. Нужно ли скрывать IMEI от посторонних. Что может случиться, если кто-то узнал IMEI вашего смартфона

4 основных и несколько дополнительных способов узнать IMEI любого гаджета

А вы знаете, сколько «Имеев» в вашем аппарате? Один? Не угадали. Большинство современных смартфонов имеет по два модуля SIM, значит, IMEI у них тоже два: по одному на каждый модуль.

Основные

Не важно, iPhone у вас или Android, Самсунг последней модели или старенькая Nokia, определить «ИМЕЙ» любого девайса одинаково просто. Для этого достаточно:

  1. Осмотреть телефон со всех сторон. Заветный код может находиться на задней или боковой стенке, на внутренней части лотка для СИМ-карт, а также под аккумулятором.IMEI на деталях айфона
  2. Прочитать написанное на упаковке или в гарантийном талоне из комплекта поставки аппарата. Если на коробке нужных данных может не быть, то в гарантийнике они есть всегда.IMEI на коробке от айфона
  3. Заглянуть в системное меню смартфона. На Андроиде: откройте раздел «О телефоне», затем «Статус» или «Информация об устройстве» –> «Данные IMEI-кода». На iPhone и iPad: войдите в раздел «Основные» –> «Об этом устройстве» и прокрутите окно вниз.IMEI в настройках Андроида
  4. Запустить приложение для звонков, набрать команду проверки *#06# и нажать кнопку вызова. Эта комбинация работает на всех устройствах независимо от марки, модели и давности выпуска. Кроме тех, где сервисные USSD-запросы запрещены производителем или владельцем.USSD запрос для получения IMEI

Дополнительные

Для смартфонов и планшетов Apple:

  1. Откройте следующий веб-ресурс, нажмите кнопку «Войти в учетную запись» и авторизуйтесь под своим Apple ID.определение IMEI устройства Apple по Apple ID
  2. Перейдите в раздел «Устройства» и щелкните по плитке с именем гаджета. Во всплывающем окошке отобразятся сведения о модели, среди которых упомянут и IMEI.Просмотр IMEI на сайте AppleID

Если у вас есть другой iPhone или iPad на базе iOS 10 и новее, связанный с тем же Apple ID, что и интересующий, то вам доступен еще один способ:

  1. Откройте системные настройки iPhone или iPad и войдите в раздел с именем пользователя (Apple ID, iCloud, контент и покупки). В нижней части экрана перечислены устройства, на которых выполнен вход в Apple ID.
  2. Коснитесь имени интересующего девайса – это перенесет вас в раздел с информацией о модели, где также указан IMEI.

Просмотр IMEI в настройках другого iPhone или iPad

Для смартфонов на процессорах MediaTek (MTK) через инженерное меню:

  1. Войдите в инженерное меню при помощи одного из сервисных кодов или приложения.
  2. Откройте раздел «MTK settings», затем – группу «Connectivity», подраздел «CDS Information» -> «Radio Information» и «Phone» (на аппаратах с двумя SIM-картами их два). «ИМЕЙ» указан в самом верху.

IMEI в инженерном меню на Андроиде

Кроме того, этот номер можно найти в разделе «MTK settings» -> группа «Telephony» -> «GPRS» -> кнопка «SIM» (их может быть две по количеству SIM-карт).

IMEI в инженерном меню в разделе GPRS

Для различных устройств на Android с помощью бесплатных сторонних приложений:

  • IMEI – для старых версий Андроида – от 5.1 до 9.
  • IMEI Checker Find Device Info
  • IMEI Checker
  • My IMEI
  • My IMEI Tool и других.

Эти приложения дают возможность не только узнать «ИМЕЙ» телефона, но и проверить валидность – может ли устройство с таким идентификатором подключаться к сотовым сетям страны. Для РФ, возможно, это неактуально, но в ряде государств использование гаджетов с неоригинальным «имеем» грозит владельцам проблемами с законом.

Можно ли изменить IMEI

И да, и нет. Изменить IMEI случайно при обычной работе с телефоном практически невозможно, но целенаправленно – можно вполне.

«ИМЕЙ» хранится в защищенной области энергонезависимой памяти мобильных устройств. Обычные прикладные программы не взаимодействуют с данными этого хранилища напрямую, поэтому перезаписать или стереть идентификатор они не могут.

Но доступ к месту хранения IMEI-кода есть у служебных утилит. Вот они-то могут сделать c ним что угодно. Конечно, не сами, а руками человека.

Ненамеренно изменить (затереть или повредить) «ИМЕЙ» можно при hard reset и перепрошивке аппарата, если что-то пошло не по сценарию, а также при экспериментах с инженерным меню на устройствах с root. Инструменты этого меню, упомянутые выше, используют не только для «посмотреть», но и для «редактировать» закрытые настройки смартфонов.

Чтобы избежать возможных проблем, если вы собираетесь что-то радикально менять в телефоне, не забудьте сохранить копию IMEI любым способом.

Что можно узнать по «ИМЕЙ» об устройстве и владельце

Идентификатор – это, как вы помните, уникальное «удостоверение личности» девайса в сотовых сетях. Но в нем есть и некая общая информация, по которой можно определить:

  • Страну производителя (для старых моделей телефонов) – она закодирована в седьмой и восьмой цифрах номера IMEI. Число 80 и 03 указывает на то, что аппарат сделан в Китае; 67 – в США; 60 – в Сингапуре; 01, 05, 06, 09, 10, 70 – в Финляндии; 30 – в Корее; 04 – во Вьетнаме. Сведения о других странах-производителях можно найти в интернете.
  • Бренд, модель и некоторую другую информацию о телефоне. Для этого вбейте IMEI интересующего девайса в поле на этом сайте и нажмите «Analyse».Марка и модель телефона по IMEI
  • Серийный номер – он закодирован в 9-14 цифрах «имея». Например, устройство с идентификатором 350077-52-323751-3 имеет серийник 323751.
  • Не числится ли телефон в базе утерянных или украденных. Для этого есть специальные сервисы и программы, часть из которых описана в статье о поиске Андроид-девайсов.Проверка IMEI по базе украденных
  • Подлинность смартфона и гарантию производителя (для отдельных брендов): Samsung; Xiaomi, купленные в РФ; Xiaomi, купленные в других странах.Проверка гарантии смартфона по IMEI
  • Некоторые другие данные из баз сервисов imei.net и imei.info: к какой сети аппарат подключен, когда куплен, где продан и т. д.

А как насчет владельца телефона – ФИО, адрес, паспорт? Да, эти сведения тоже можно получить по IMEI, но… только в случае доступа к закрытым и охраняемым базам операторов мобильной связи. «ИМЕЙ» не имеет постоянной привязки к СИМ-карте и ее обладателю, поэтому пробить эту информацию по открытым источникам не получится. Конечно, если хакеры не слили ее в сеть.

Нужно ли скрывать IMEI от посторонних. Что может случиться, если кто-то узнал IMEI вашего смартфона

Как мы выяснили, «ИМЕЙ» – не настолько конфиденциальная вещь, чтобы прятать ее, как зеницу ока, от всех подряд. Но и сообщать каждому, кто интересуется, тоже ни к чему. Особенно если вы собираетесь продавать телефон.

Причина в том, что этими данными пользуются интернет-мошенники. Они загружают выведанные IMEI-коды в базы украденных устройств на различных интернет-площадках, а затем вымогают у владельцев средства за удаление из них. Иначе аппарат никто не купит.

Да, это может создать определенные трудности при продаже, но не в плане поиска денег на выкуп. Если вы попались на эту удочку, не платите мошенникам, а свяжитесь с администрацией площадок и подтвердите, что владеете телефоном законно. Ведь у вас, скорее всего, сохранилась коробка и гарантийный талон от устройства, где всегда указан IMEI.

Если вы собираетесь пользоваться телефоном сами, то записи в базах каких-то ресурсов никак вам в этом не помешают. Опасаться блокировки со стороны мобильного оператора тоже не стоит – ее можете инициировать только вы.

Словом, если кто-то узнал ваш «ИМЕЙ», ничего трагичного не случится, максимум возникнут неудобства. Но разбалтывать лишнее все равно не стоит – просто для собственного спокойствия.

Обложка: Flickr

Многие пользователи слышали об IMEI, но не знают точно, что это. Между тем он присваивается каждому телефону не просто так, а с важными целями. Рассказываем, как узнать имей телефона и какую пользу он может принести владельцу. Мы определили 6 основных способов, как можно посмотреть imei телефона.

Причем они будут действенны для всех моделей Самсунг, Xioomi, Huawei, Honor, Iphone и других производителей. Также это не зависит от операционной системы аппарата. Для Андроида, iOs и Windows mobile – все эти действия и комбинации цифр будут одинаковы.

Что такое IMEI

IMEI — это аббревиатура International Mobile Equipment Identity, что переводится как «международный идентификатор мобильного устройства». Говоря простыми словами это уникальный код, состоящий из 15 цифр, который присваивается каждому мобильному устройству, а также некоторым спутниковым телефонам. Разберемся, зачем он нужен и как узнать код (имей) телефона.

Имей по-другому можно назвать серийным номером телефона. Оператор определяет его, когда аппарат выходит в сеть.

Как узнать имей телефона

У кода IMEI есть расшифровка:

  • шесть первых чисел — это код для определения модели телефона, причем первые две цифры — это код страны-производителя;
  • следующие две цифры — код страны, где происходила сборка устройства;
  • следующие шесть чисел — серийный номер аппарата;
  • последняя цифра — это резервный номер.

Двух одинаковых IMEI не бывает. Попытка изменить серийный номер мобильного устройства незаконна. По сути, это то же самое, что «перебивание» номеров на автомобильном двигателе.

Для чего нужен идентификатор мобильного устройства

Уникальный серийный номер (идентификатор) телефона используется для обнаружения устройства в сети. По нему сотовый оператор при необходимости может отыскать телефон, если он был украден или нелегально ввезен в страну. С помощью кода IMEI можно не только найти устройство в сети, но и заблокировать его, чтобы обезопасить личные данные владельца.

IMEI может помочь не только в обнаружении украденного устройства. С его помощью можно понять, например, при покупке телефона с рук, не предлагает ли продавец вам нелегальный или украденный аппарат.

Как узнать имей телефона – универсальные способы

Большая часть пользователей не знает, как проверить имей телефона. Сделать это можно несколькими способами.

Способ №1 — при помощи специальной команды

Один из самых простых и быстрых способов узнать код имей телефона — использовать специальный код, набрав его на устройстве:

  • откройте приложение «Телефон»;
  • наберите команду *#06#;
  • дождитесь ответного сообщения оператора с идентификатором устройства.

Как узнать имей телефона с помощью команды

Не пугайтесь, если вы увидите два IMEI — практически все современные смартфоны оснащены лотками для двух SIM-карт, поэтому и имей у таких моделей двойной, на каждую симку. Соответственно, если аппарат поддерживает работу только с одной SIM-картой, код IMEI будет один.

Специальная команда для показа IMEI телефона одинакова для моделей всех производителей смартфонов и планшетов, в том числе и для продукции Apple. На телефоне Самсунг, Хонор, Хуавэй или Сяоми команда работает одинаково.

Способ №2 — в меню устройства

Алгоритм действий такой:

  • откройте «Настройки»;
  • прокрутите меню вниз до вкладки «О телефоне» и откройте ее;
  • в информации об устройстве найдите IMEI.

Имей телефона в меню устройства

№3 — при помощи коробки от телефона

Выкидывать коробки от технически сложных устройств стоит только в том случае, если на них нет важной информации, которая когда-нибудь может пригодиться. Например, на коробках для телефонов и планшетах можно найти не только название устройства и наименование модели, но и IMEI. Кроме того, это еще и дополнительное доказательство того, что вы являетесь владельцем данного аппарата.

В зависимости от производителя устройства информация об IMEI может находиться на задней или боковой стороне коробки.

Узнать имей телефона на его коробке

Способ №4 — вынимаем батарею

Сейчас этот способ работает в основном на старых моделях, поскольку практически все современные мобильные устройства оснащены несъемными аккумуляторами. Чтобы узнать imei телефона, нужно снять заднюю панель и вынуть батарею. Под ней находится наклейка с информацией о модели аппарата, стране производства и IMEI. Если устройство двухсимочное, на наклейке будут два кода IMEI.

телефон со снятой батареей

№5 — как узнать имей телефона через приложение Google Find My Device

Чтобы найти IMEI телефона, можно использовать программу Find My Device от Google:

  • откройте приложение;
  • если необходимо, авторизуйтесь в сервисе;
  • если у вас несколько устройств, найдите в верхней части экрана нужное и нажмите на его иконку;
  • нажмите на значок «!» рядом с названием модели устройства;
  • появится окошко с номером IMEI телефона.

 Google Find My Device

№6 — ищем гарантийный талон

При покупке телефона покупателю дают гарантийный талон на устройство. Иногда в качестве гарантийного талона выступает чек покупки. Продавец может указать IMEI телефона в гарантийном талоне при продаже устройства, но делается это не всегда.

Как узнать имей заблокированного телефона

Если случилась неприятность и по какой-либо причине аппарат оказался заблокированным, можно узнать его IMEI при помощи коробки от него, или попробовать найти номер в гарантийном талоне.

Также можно использовать программу Google Find My Device. Ее нужно установить на любой доступный смартфон, авторизоваться под своим логином и паролем и посмотреть IMEI заблокированного телефона.

Заключение

Теперь вы знаете, что IMEI — уникальный серийный номер телефона, по которому устройство в любой момент можно обнаружить, если в этом возникнет необходимость. Также мы рассказали, с помощью какой комбинации цифр можно узнать имей телефона и какие еще существуют способы проверки серийного номера аппарата.

Видео

Понравилась статья? Поделить с друзьями:
  • Как получить пароль от вк другого человека зная номер телефона
  • Как поменять номер мобильного телефона мгтс
  • Как получить определенный номер телефона мтс
  • Как поменять номер киви кошелька на другой номер телефона
  • Как получить одноразовый номер телефона бесплатный