Nếu bạn muốn kiểm tra id thiết bị duy nhất như số IMEI thông qua lập trình, chúng tôi có thể thực hiện việc này bằng trình quản lý điện thoại như ví dụ minh họa bên dưới -
Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.
Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.
<?xml version = "1.0" encoding = "utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:app = "https://schemas.android.com/apk/res-auto" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent" android:layout_height = "match_parent" tools:context = ".MainActivity"> <Button android:id = "@+id/button" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Click here to hide" app:layout_constraintBottom_toBottomOf = "parent" app:layout_constraintLeft_toLeftOf = "parent" app:layout_constraintRight_toRightOf = "parent" app:layout_constraintTop_toTopOf = "parent" /> </android.support.constraint.ConstraintLayout>
Bước 3 - Thêm mã sau vào src / MainActivity.java
import android.Manifest; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.support.annotation.RequiresApi; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.telephony.TelephonyManager; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TelephonyManager telephonyManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button); button.setOnClickListener(this); } @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: deviceId(); break; } } private void deviceId() { telephonyManager = (TelephonyManager) getSystemService(this.TELEPHONY_SERVICE); if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 101); return; } } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){ switch (requestCode) { case 101: if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 101); return; } String imeiNumber = telephonyManager.getDeviceId(); Toast.makeText(MainActivity.this,imeiNumber,Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"Without permission we check",Toast.LENGTH_LONG).show(); } break; default: super.onRequestPermissionsResult(requestCode, permissions, grantResults); } } }
Trong đoạn mã trên, chúng tôi đã cấp quyền thời gian chạy để đọc trạng thái điện thoại, nếu không có trạng thái điện thoại, chúng tôi không thể lấy id thiết bị. Đối với id thiết bị, hãy thêm mã sau vào dự án của bạn.
TelephonyManager telephonyManager; telephonyManager = (TelephonyManager) getSystemService(this.TELEPHONY_SERVICE); String imeiNumber = telephonyManager.getDeviceId();
Bước 4 - Thêm mã sau vào AndroidManifest.xml
<manifest xmlns:android = "https://schemas.android.com/apk/res/android" package = "com.example.andy.myapplication"> <uses-permission android:name = "android.permission.READ_PHONE_STATE" /> <application android:allowBackup = "true" android:icon = "@mipmap/ic_launcher" android:label = "@string/app_name" android:roundIcon = "@mipmap/ic_launcher_round" android:supportsRtl = "true" android:theme = "@style/AppTheme"> <activity android:name = ".MainActivity"> <intent-filter> <action android:name = "android.intent.action.MAIN" /> <category android:name = "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Trong đoạn mã trên, chúng tôi đã khai báo quyền Đọc trạng thái điện thoại. nó sẽ đọc tất cả các trạng thái của điện thoại.
Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Chạy biểu tượng từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn
Khi bạn nhấp vào nút, nó sẽ yêu cầu quyền thời gian chạy từ người dùng, Người dùng nên cho phép quyền lấy số IMEI như hình dưới đây
Trong đoạn mã trên, chúng tôi có Số IMEI hoặc số duy nhất (Vì lý do bảo mật, chúng tôi ẩn Số duy nhất của mình)
Khi người dùng từ chối quyền thời gian chạy, nó sẽ hiển thị như thông báo trên.