หากคุณต้องการตรวจสอบรหัสอุปกรณ์ที่ไม่ซ้ำกัน เช่น หมายเลข IMEI ผ่านโปรแกรม เราสามารถทำได้โดยใช้เครื่องจัดการโทรศัพท์ดังที่แสดงด้านล่าง -
ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่
ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml
<รุ่นก่อนหน้า>ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java
<ก่อนหน้า>นำเข้า android.Manifest;นำเข้า android.annotation.SuppressLint;นำเข้า android.app.ProgressDialog;นำเข้า android.content.pm.PackageManager;นำเข้า android.os.Build;นำเข้า android.os.Bundle;นำเข้า android.os Handler;นำเข้า android.support.annotation.RequiresApi;นำเข้า android.support.v4.app.ActivityCompat;นำเข้า android.support.v7.app.AppCompatActivity;นำเข้า android.telephony.TelephonyManager;นำเข้า android.view.View;นำเข้า android view.inputmethod.InputMethodManager;นำเข้า android.widget.Button;นำเข้า android.widget.EditText;นำเข้า android.widget.ProgressBar;นำเข้า android.widget.Toast;คลาสสาธารณะ MainActivity ขยาย AppCompatActivity ที่ใช้ View.OnClickListener { TelephonyManager telephonyManager; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); ปุ่มปุ่ม =findViewById(R.id.button); button.setOnClickListener (นี้); } @RequiresApi(api =Build.VERSION_CODES.O) @Override public void onClick(View v) { switch (v.getId()) { case R.id.button:deviceId(); หยุดพัก; } } โมฆะ deviceId ส่วนตัว () { telephonyManager =(TelephonyManager) getSystemService (this.TELEPHONY_SERVICE); ถ้า (ActivityCompat.checkSelfPermission (นี่, Manifest.permission.READ_PHONE_STATE) !=PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions (นี่ สตริงใหม่[]{Manifest.permission.READ_PHONE_STATE}, 101); กลับ; } } @แทนที่โมฆะสาธารณะ onRequestPermissionsResult (int requestCode, String[] permissions, int[] grantResults){ switch (requestCode) { case 101:if (grantResults[0] ==PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(นี้) , Manifest.permission.READ_PHONE_STATE) !=PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions (นี่ สตริงใหม่ []{Manifest.permission.READ_PHONE_STATE}, 101); กลับ; } สตริง imeiNumber =telephonyManager.getDeviceId(); Toast.makeText(MainActivity.this,imeiNumber,Toast.LENGTH_LONG).show(); } อื่น { Toast.makeText(MainActivity.this,"เราตรวจสอบโดยไม่ได้รับอนุญาต",Toast.LENGTH_LONG).show(); } หยุดพัก; ค่าเริ่มต้น:super.onRequestPermissionsResult (requestCode, สิทธิ์, GrantResults); } }}ในโค้ดด้านบนนี้ เราให้สิทธิ์รันไทม์ในการอ่านสถานะโทรศัพท์ หากไม่มีสถานะโทรศัพท์ เราไม่สามารถรับรหัสอุปกรณ์ได้ สำหรับรหัสอุปกรณ์ ให้เพิ่มรหัสต่อไปนี้ในโครงการของคุณ
TelephonyManager telephonyManager;telephonyManager =(TelephonyManager) getSystemService(this.TELEPHONY_SERVICE);String imeiNumber =telephonyManager.getDeviceId();
ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน AndroidManifest.xml
<หมวดหมู่ android:name ="android.intent.category.LAUNCHER" />
ในรหัสข้างต้นเราได้ประกาศสิทธิ์ในการอ่านสถานะโทรศัพท์ มันจะอ่านสถานะโทรศัพท์ทั้งหมด
มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์ของคุณแล้วคลิก Run ไอคอนจากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ
เมื่อคุณคลิกที่ปุ่ม มันจะถามการอนุญาตรันไทม์จากผู้ใช้ ผู้ใช้ควรอนุญาตให้รับหมายเลข IMEI ดังที่แสดงด้านล่าง
ในรหัสข้างต้น เราได้หมายเลข IMEI หรือหมายเลขเฉพาะ (เพื่อเหตุผลด้านความปลอดภัย เราซ่อนหมายเลขเฉพาะของเรา)
เมื่อผู้ใช้ปฏิเสธการอนุญาตรันไทม์ มันจะแสดงเหมือนข้อความด้านบน