- vừa được xem lúc

Lấy Unique ID của thiết bị Android

0 1 13

Người đăng: Bui Huu Tuan

Theo Viblo Asia

Trong quá trình phát triển ứng dụng Android, đôi lúc bạn cần phải lấy Unique Id của thiết bị. Unique ID tạm hiểu là ID định danh để phân biệt thiết bị đó với các thiết bị khác, nó thường là duy nhất đối với từng thiết bị.

Unique ID thường được dùng khi bạn muốn theo dõi lượt cài đặt của ứng dụng, hoặc gửi Push notification cho một số loại thiết bị nhất định. Vì vậy, nó trở nên cần thiết phải có một UDID (unique device identifier) cho mỗi thiết bị.

Trong Android có rất nhiều lựa chọn thay thế để lấy UDID của thiết bị. Một số phương pháp để có được UDID trong ứng dụng Android được liệt kê dưới đây với những ưu điểm và nhược điểm của nó :

  1. IMEI: (International Mobile Equipment Identity)
  2. Android ID
  3. Địa chỉ WLAN MAC
  4. Địa chỉ Bluetooth

1. The IMEI: (International Mobile Equipment Identity)

IMEI là 1 thông số rất tốt để là ID của thiết bị. Nó là duy nhất cho mỗi và mọi thiết bị. IMEI phụ thuộc vào phần cứng của thiết bị nên nó sẽ tồn tại song song cùng với phần cứng của thiết bị đó.

Để lấy IMEI của thiết bị Android , ta thực hiện đoạn lệnh sau :

TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String m_deviceId = TelephonyMgr.getDeviceId();

Đoạn lệnh trên yêu cầu quyền “android.permission.READ_PHONE_STATE” trong AndroidManifest.

Ưu điểm

  • IMEI là duy nhất cho mỗi và mọi thiết bị.
  • Nó là duy nhất ngay cả khi ứng dụng bị gỡ đi cài lại hoặc thiết bị bị root hay factory reset.

Nhược điểm

  • IMEI phụ thuộc vào Simcard của thiết bị. Vì vậy, không thể lấy được IMEI của các thiết bị mà không sử dụng Simcard.
  • Trong các thiết bị sử dụng 2 Sim, ta sẽ lấy được 2 IMEI khác nhau của thiết bị đó.

2. The Android ID

Android ID là một số 64 bit duy nhất được tạo ra và lưu trữ khi thiết bị được khởi động lần đầu tiên. Android ID sẽ bị xóa đi khi thiết bị factory reset và một Android ID mới sẽ được sinh ra.

Ta lấy Android ID như sau :

String m_androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);

Ưu điểm

  • Nó là duy nhất cho tất cả các thể loại thiết bị ( điện thoại và máy tính bảng ).
  • Không cần bất cứ permission nào.
  • Nó sẽ vẫn duy nhất trong tất cả các thiết bị và hoạt động trên cả những điện thoại ko gắn Sim.

Nhược điểm

3. Địa chỉ WLAN MAC

Chúng ta cũng có thể lấy Unique ID cho điện thoại Android sử dụng địa chỉ WLAN MAC. Địa chỉ MAC là duy nhất cho tất cả các thiết bị và nó hoạt động cho tất cả các thể loại thiết bị.

Đoạn lệnh sau sẽ lấy địa chỉ WLAN MAC của thiết bị Android :

WifiManager m_wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
String m_wlanMacAdd = m_wm.getConnectionInfo().getMacAddress();

Đoạn lệnh trên sẽ yêu cầu permission “android.permission.ACCESS_WIFI_STATE” trong Android Manifest.

Ưu điểm

  • Nó là duy nhất cho tất cả các loại thiết bị ( điện thoại và máy tính bảng ).
  • Nó là duy nhất ngay cả khi ứng dụng bị gỡ đi rồi cài lại.

Nhược điểm

  • Nếu thiết bị không có phần cứng để dùng Wifi bạn sẽ ko lấy được địa chỉ MAC, nhưng hầu hết các thiết bị Android bây giờ đều có phần cứng để dùng wifi, rất ít các thiết bị ko có phần cứng để dùng wifi.

4. Địa chỉ Bluetooth

Chúng ta có thể lấy địa chỉ Bluetooth để làm Unique ID cho thiết bị Android. Địa chỉ Bluetooth là duy nhất cho mỗi thiết bị Android mà có phần cứng phục vụ Bluetooth.

Để lấy địa chỉ Bluetooth thực hiện đoạn code sau :

BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String m_bluetoothAdd = m_BluetoothAdapter.getAddress();

Đoạn code trên yêu cầu permission “android.permission.BLUETOOTH” trong Android Manifest.

Ưu điểm

  • Nó duy nhất cho tất cả các loại thiết bị ( điện thoại và máy tính bảng ) Nói chung chỉ cần thiết bị có phần cứng Bluetooth là sẽ lấy được và nó sẽ ko bị thay đổi.

    Nhược điểm

    • Thiết bị không có phần cứng Bluetooth thì sẽ không lấy được địa chỉ Bluetooth.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 1: Làm quen cô nàng Flutter

Lời mở đầu. Gần đây, Flutter nổi lên và được Google PR như một xu thế của lập trình di động vậy.

0 0 281

- vừa được xem lúc

Học Flutter từ cơ bản đến nâng cao. Phần 3: Lột trần cô nàng Flutter, BuildContext là gì?

Lời mở đầu. Màn làm quen cô nàng FLutter ở Phần 1 đã gieo rắc vào đầu chúng ta quá nhiều điều bí ẩn về nàng Flutter.

0 0 206

- vừa được xem lúc

[Android] Hiển thị Activity trên màn hình khóa - Show Activity over lock screen

Xin chào các bạn, Hôm nay là 30 tết rồi, ngồi ngắm trời chờ đón giao thừa, trong lúc rảnh rỗi mình quyết định ngồi viết bài sau 1 thời gian vắng bóng. .

0 0 107

- vừa được xem lúc

Tìm hiểu Proguard trong Android

1. Proguard là gì . Cụ thể nó giúp ứng dụng của chúng ta:. .

0 0 100

- vừa được xem lúc

Làm ứng dụng học toán đơn giản với React Native - Phần 6

Chào các bạn một năm mới an khang thịnh vượng, dồi dào sức khỏe. Lại là mình đây Đây là link app mà các bạn đang theo dõi :3 https://play.google.com/store/apps/details?id=com.

0 0 68

- vừa được xem lúc

20 Plugin hữu ích cho Android Studio

1. CodeGlance. Plugin này sẽ nhúng một minimap vào editor cùng với thanh cuộn cũng khá là lớn. Nó sẽ giúp chúng ta xem trước bộ khung của code và cho phép điều hướng đến đoạn code mà ta mong muốn một cách nhanh chóng.

0 0 315