2015-09-25 18 views
11

Tôi cần phải đăng ký thiết bị người dùng trên máy chủ với số nhận dạng duy nhất là giá trị không đổi và không thay đổi trong tương lai.Android - ID thiết bị duy nhất và không đổi

Tôi không thể tìm thấy giải pháp tốt để lấy id duy nhất từ ​​tất cả các thiết bị (có/không có simcard).

Secure.ANDROID_ID: Bảo mật.ANDROID_ID không phải là duy nhất và có thể không có hoặc thay đổi khi khôi phục cài đặt gốc.

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

IMEI: IMEI là phụ thuộc vào các khe cắm Simcard của thiết bị, vì vậy nó không phải là tốt để có được IMEI cho các thiết bị mà không sử dụng Simcard.

TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String uuid = tManager.getDeviceId(); 

WLAN MAC Address: Nếu thiết bị không có phần cứng wifi thì nó sẽ trả về địa chỉ MAC null. và người dùng có thể thay đổi địa chỉ mac của thiết bị.

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

Địa chỉ chuỗi Bluetooth: Nếu thiết bị có phần cứng không bluetooth thì nó sẽ trả về null.

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

Instance id: instance_id sẽ thay đổi khi người dùng gỡ bỏ và cài đặt lại ứng dụng. và nó không phải là một giá trị không đổi.

Bạn có ý tưởng lấy id duy nhất từ ​​tất cả các thiết bị Android (có/không có simcard, Bluetooth, ...) thực sự là duy nhất, không thể rỗng và không thay đổi sau khi gỡ cài đặt/cài đặt lại ứng dụng?

+0

Lưu ý rằng máy tính bảng không có cả SIMcard và WiFi không thể tồn tại hoặc hữu ích từ xa. Bạn đã xem xét một sự kết hợp của cả hai? –

+0

@STTLCU no. nhưng người dùng có thể thay đổi địa chỉ MAC. –

+0

@STTLCU Tôi không chắc chắn những máy tính bảng bạn có xung quanh bạn, nhưng hầu như bất cứ ai tôi biết có một viên thuốc _with_ một thẻ SIM. –

Trả lời

3

Tôi thấy rằng Secure.ANDROID_ID là lựa chọn tốt nhất. Đây là số lượng 64 bit được tạo và lưu trữ khi thiết bị khởi động lần đầu tiên. Nhưng thiết lập lại đặt lại trên thiết bị gốc của thiết bị.

có một số báo cáo cho thấy một số thiết bị có cùng Secure.ANDROID_ID trên tất cả các phiên bản.

chúng tôi có thể thêm các mục bổ sung (như sim serial, ID cá thể GCM hoặc ...) vào Secure.ANDROID_ID và tạo vân tay duy nhất mới.

0

Bảo mật.ANDROID_ID là người bạn duy nhất của bạn. Tuy nhiên nó có một số vấn đề (kết quả trống) trên các thiết bị cũ hơn (< 2.3). Tất cả các ID khác không hoạt động trên tất cả các loại thiết bị.

hãy cũng đọc Is there a unique Android device ID?

2

mutiple người dùng có thể được thiết lập trên thiết bị Android và Secure.ANDROID_ID là khác nhau cho mỗi người dùng trên thiết bị Android tương tự. Vì vậy, việc sử dụng Secure.ANDROID_ID có nghĩa là các thiết bị đơn lẻ sẽ được đăng ký dưới dạng thiết bị khác cho từng thiết lập của người dùng trên thiết bị.

+0

** ANDROID_ID ** được đặt lại khi thiết bị được khôi phục cài đặt gốc. Vì vậy, nó không phải là dai dẳng. –

Các vấn đề liên quan