2012-02-20 40 views
10

Thiết bị Android có một địa chỉ IP tĩnh duy nhất mà máy chủ có thể nhận dạng chúng không? Tôi tự hỏi simce sẽ cho phép trò chơi của tôi lưu dữ liệu mà không cần đăng nhập.Thiết bị Android có địa chỉ IP tĩnh không?

+0

Tôi không biết về IP, nhưng họ phải có địa chỉ mac duy nhất. –

+0

Cân nhắc điều gì xảy ra khi người dùng thay thế/nâng cấp thiết bị và khôi phục dữ liệu từ thẻ dự phòng hoặc thẻ SD. Liệu thiết bị mới đó có được coi là từ cùng một người dùng không? Nếu có, thì có thể bạn không muốn bị ràng buộc với bất kỳ thuộc tính nào của cấu hình phần cứng hoặc mạng. –

Trả lời

13

Điều này phụ thuộc hoàn toàn vào những gì chúng được kết nối. Theo mặc định, không. Hầu hết các thiết bị Android được cấu hình cho DHCP cho mạng không dây và tôi không biết bất kỳ nhà cung cấp dịch vụ nào gán địa chỉ IP tĩnh cho thiết bị di động trên mạng dữ liệu của họ.

6

Cả hai thiết bị Android đều có thể được kết nối qua WiFi và 3G, rõ ràng là có các IP khác nhau.
Địa chỉ IP trên 3G cũng sẽ thay đổi mỗi lần kết nối lại.

8

Khi người khác đã trả lời, không, thiết bị di động thường không có địa chỉ IP tĩnh và thay vào đó sử dụng DHCP để nhận địa chỉ IP động.

Tuy nhiên, để trả lời câu hỏi cơ sở của bạn, bạn có thể tạo mã thông báo duy nhất cho người dùng bằng cách sử dụng java.util.UUID class. Lưu mã thông báo đã tạo này vào SharedPreferences của ứng dụng và bạn có thể sử dụng mã thông báo này để xác định người dùng của mình:

public static String getDeviceUuid(Context context) { 
    final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

    // Attempt to get an existing device uuid 
    String uuid = preferences.getString("device_uuid_key", ""); 
    if (TextUtils.isEmpty(uuid)) { 
     // We don't have a device id, generate one! 
     uuid = UUID.randomUUID().toString(); 

     // Persist the new id to shared preferences 
     final Editor editor = preferences.edit(); 
     editor.putString("device_uuid_key", uuid); 
     editor.commit(); 
    } 
    return uuid; 
} 
+0

Điều gì về thay đổi thiết bị? Điều này sẽ không thay đổi mã thông báo – simonmorley

+0

Có, điều đó sẽ thay đổi mã thông báo. Ngoài ra, nếu họ gỡ cài đặt ứng dụng, sau đó cài đặt lại ứng dụng, họ sẽ nhận được mã thông báo mới. Nếu bạn muốn xác định chúng trên những thay đổi này, bạn sẽ cần phải liên kết cuối cùng mã thông báo với tài khoản người dùng (địa chỉ email hoặc tên người dùng). Bằng cách đó, họ có thể đăng nhập vào tài khoản khi họ cài đặt lại ứng dụng của bạn hoặc thay đổi thiết bị. – twaddington

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