Android 獲取手機的 IMEI 值

手機在生產時,每部手機均有一個唯一的標識(ID),國際上採用國際移動設備身份碼(IMEI, International Mobile Equipment Identity)。IMEI是由15位數字組成的"電子串號",它與每臺手機一一對應,而且該碼是全世界唯一的。每一隻手機在組裝完成後都將被賦予一個全球唯一的一組號碼,這個號碼從生產到交付使用都將被製造生產的廠商所記錄。

在手機中輸入*#06#即可看到本機的IMEI碼。您也可以在手機包裝盒上找到IMEI碼。

在手機應用開發中,使用IMEI來做身份認證是一個常用的技術手段。

在Android SDK中,類android.telephony.TelephonyManager提供了手機設備信息的相關操作和管理。


在代碼中添加

private void setPhoneStateManifest(){
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
            // toast("需要動態獲取權限");
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_PHONE_STATE);
        }else{
            // toast("不需要動態獲取權限");
            TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
            String IMEI = tm.getDeviceId();
            mPhoneState.setText(IMEI);
            Log.i(TAG,"IMEI:" + IMEI);
        }
    }


@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (requestCode == REQUEST_PHONE_STATE && grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
        TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
        String IMEI = tm.getDeviceId();
        mPhoneState.setText(IMEI);
        Log.i(TAG,"IMEI:" + IMEI);
    }
}

不要忘記權限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章