2012-11-15 18 views
34

Google vừa phát hành Android 4.2, bao gồm hỗ trợ nhiều hồ sơ người dùng trên một thiết bị: http://developer.android.com/about/versions/android-4.2.html#MultipleUsers.Ý nghĩa của việc hỗ trợ nhiều người dùng Android (mới trong 4.2) cho mô hình dữ liệu phía máy chủ (ví dụ: android_id)

Google nói rằng điều này sẽ minh bạch đối với các ứng dụng, nhưng tôi nghĩ nó có thể có tác động đến mô hình dữ liệu được sử dụng để nhận dạng thiết bị, người dùng và cài đặt.

Một vấn đề là việc sử dụng android_id. Lời khuyên trên trang được liên kết ở trên đề xuất xác định thiết bị bằng một trong các phương pháp khác rồi android_id, nhưng tôi tin rằng android_id được sử dụng rộng rãi cho mục đích này.

Câu hỏi chính của tôi là - mỗi hồ sơ người dùng có android_id của riêng mình hay không và ý nghĩa của nó là gì?

Android_id mới được tạo khi hệ điều hành mới được cài đặt hoặc khi khôi phục cài đặt gốc hoàn tất - có thể tạo mới khi hồ sơ người dùng mới được tạo (đây là câu hỏi số 1)? Tôi nghĩ có lẽ không, vì vậy sau đó một ứng dụng có thể được cài đặt nhiều lần cho cùng một android_id - Tôi nghĩ rằng điều này có thể muck với mô hình dữ liệu phía máy chủ cho một số ứng dụng.

Dù bằng cách nào, tùy thuộc vào cách bạn xác định thiết bị, giờ đây bạn có thể thấy rằng một ứng dụng cụ thể có thể có nhiều cài đặt trên một thiết bị.

Một vấn đề khác là người dùng. Có lẽ mỗi tiểu sử có thể có bất kỳ số lượng tài khoản Google nào, nhưng một tài khoản Google phải được liên kết với cửa hàng phát trong mỗi tiểu sử. Tôi nghĩ rằng nó cũng có thể là ứng dụng của bạn có thể có nhiều cài đặt đồng thời với cùng một thiết bị (bởi android_id) VÀ cùng một người dùng. Tôi nghĩ rằng việc sử dụng phổ biến tính năng nhiều tiểu sử sẽ cho một người dùng có hồ sơ nhà riêng và cơ quan trên điện thoại của họ - thường sử dụng các tài khoản Google khác nhau, nhưng trong một số trường hợp họ có thể có cùng một tài khoản Google trong mỗi hồ sơ (ví dụ: họ không phải trả tiền hai lần).

Side Lưu ý
Here is a similar discussion của ANDROID_ID trên nền tảng mới của ARC (Android trên Chrome). Cẩn thận - hành vi trên ARC không giống như trên Android.

Trả lời

32

(Không ai trả lời câu hỏi của tôi, nhưng bây giờ tôi đã có một cơ hội để thử nghiệm với 4.2 bản thân mình.)

Câu trả lời là mỗi hồ sơ có android_id riêng của mình.

Hãy suy nghĩ về điều này, điều này có thể có ý nghĩa nhất và sẽ gây ra ít sự cố nhất. Điều này sẽ khiến hầu hết các hệ thống nhìn thấy các cấu hình khác nhau trên một thiết bị như các thiết bị khác nhau - điều này không thực sự là vấn đề. Vấn đề duy nhất là các hệ thống xác định chính xác một thiết bị, ví dụ. dựa trên địa chỉ wifi hoặc bt mac, hoặc số sê-ri hoặc IMEI, và sau đó dự kiến ​​rằng nhiều android_id trên thiết bị duy nhất đó đại diện cho các cài đặt hệ điều hành tuần tự trên thiết bị đó. (Thay vì nghịch ngợm, sẽ an toàn hơn nếu sai.)

+3

Ai đó đã chỉ ra rằng các tài liệu mâu thuẫn với hành vi của 4.2.1 trên N7. Họ đã tạo [vấn đề tại đây] (http://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=Build.serial&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby= & sort = & id = 42523). – Tom

+0

Xin lỗi, bạn có thể làm rõ nếu hồ sơ dựa trên người dùng? Nếu vậy, bạn có biết liệu cùng một người dùng trên một thiết bị khác có tạo ra cùng ANDROID_ID không? –

+0

Nó không phải là dựa trên người dùng - mỗi 'hồ sơ' có thể có nhiều tài khoản người dùng. Và không, bạn không nên có cùng ANDROID_ID trên hai thiết bị khác nhau. – Tom

8

Có, mỗi cấu hình người dùng có ANDROID_ID của riêng nó. Điều này bây giờ là tài liệu here:

Lưu ý: Khi một thiết bị có multiple users (có sẵn trên các thiết bị nhất định chạy Android 4.2 hoặc cao hơn), mỗi người dùng xuất hiện như một thiết bị hoàn toàn riêng biệt, vì vậy giá trị ANDROID_ID là duy nhất cho mỗi người dùng.

Hãy cẩn thận mặc dù các nhà sản xuất đã được biết là botch triển khai thực hiện ANDROID_ID. Ví dụ: Motorola Droid2 returned the same ANDROID_ID value for every device. Vì lý do đó, hãy dựa vào số ANDROID_ID để nhận dạng duy nhất hồ sơ người dùng hoặc thiết bị may be unreliable.

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