Форум программистов, компьютерный форум CyberForum.ru

UUID.randomUUID(); - Android

Восстановить пароль Регистрация
 
7Alex
216 / 0 / 1
Регистрация: 24.06.2014
Сообщений: 142
04.02.2015, 10:33     UUID.randomUUID(); #1
Здравсвуйте! Никак не могу полностью разобраться, как работает один метод. Это пример из книги, может кто-то даже и узнает из какой =). Выкладываю весь метод целиком, чтобы легче было понять, что к чему, я ничего не менял, только перевёл комментарии.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
private boolean postSettingsToServer()
{
    boolean succeeded = false;
    // Пример использования HttpClient с HTTP GET запросом и переменных формы
    String uniqueId = mGameSettings.getString(GAME_PREFERENCES_UNIQUE_ID, null);
    Integer playerId = mGameSettings.getInt(GAME_PREFERENCES_PLAYER_ID, -1);
    String nickname = mGameSettings.getString(GAME_PREFERENCES_NICKNAME, "");
    String email = mGameSettings.getString(GAME_PREFERENCES_EMAIL, "");
    String password = mGameSettings.getString(GAME_PREFERENCES_PASSWORD, "");
    Integer score = mGameSettings.getInt(GAME_PREFERENCES_SCORE, -1);
    Integer gender = mGameSettings.getInt(GAME_PREFERENCES_GENDER, -1);
    Long birthdate = mGameSettings.getLong(GAME_PREFERENCES_DOB, 0);
    String favePlaceName = mGameSettings.getString(GAME_PREFERENCES_FAV_PLACE_NAME, "");
    Vector <NameValuePair> vars = new Vector <NameValuePair>();
    if (uniqueId == null)
    {
        // Создание и сохранение уникального идентификатора, если он ещё не существует
        uniqueId = UUID.randomUUID().toString();
        Log.d(DEBUG_TAG, "Уникальный ID: " + uniqueId);
        /*
         * Почему бы не использовать метод getDeviceId класса TelephonyManager?
         * Ответ здесь: [url]http://*******/sAbV2[/url]
         * Коротко говоря, он работает только на телефонах. Вы получили Wi-Fi планшет?
         * Телевизор? Забудьте. Сохраните его в общие настройки SharedPreferences.
         */
        // why not use getDeviceId from TelephonyManager?
        // See: [url]http://*******/sAbV2[/url]
        // In short, it only works on phones. Got a wifi only tablet? A TV? forget it.
        // save it in the prefs
        Editor editor = mGameSettings.edit();
        editor.putString(GAME_PREFERENCES_UNIQUE_ID, uniqueId);
        editor.commit();
    }
    // Добавление уникального идентификатора к запросу
    vars.add(new BasicNameValuePair("uniqueId", uniqueId));
    if (playerId != -1)
    {
        // В противном случае используется playerId для обновления данных
        vars.add(new BasicNameValuePair("updateId", playerId.toString()));
        // Получение последнего счёта
        vars.add(new BasicNameValuePair("score", score.toString()));
    }
    vars.add(new BasicNameValuePair("nickname", nickname));
    vars.add(new BasicNameValuePair("email", email));
    vars.add(new BasicNameValuePair("password", password));
    vars.add(new BasicNameValuePair("gender", gender.toString()));
    vars.add(new BasicNameValuePair("faveplace", favePlaceName));
    vars.add(new BasicNameValuePair("dob", birthdate.toString()));
    String url = TRIVIA_SERVER_ACCOUNT_EDIT + "?" + URLEncodedUtils.format(vars, null);
    Log.d(DEBUG_TAG, "Ссылка для выгрузки настроек на сервер: " + url);
    HttpGet request = new HttpGet(url);
    try
    {
        ResponseHandler <String> responseHandler = new BasicResponseHandler();
        HttpClient client = new DefaultHttpClient();
        String responseBody = client.execute(request, responseHandler);
        if (responseBody != null && responseBody.length() > 0)
        {
            Integer resultId = Integer.parseInt(responseBody);
            Editor editor = mGameSettings.edit();
            editor.putInt(GAME_PREFERENCES_PLAYER_ID, resultId);
            editor.commit();
        }
        succeeded = true;
    }
    catch (ClientProtocolException e)
    {
        Log.e(DEBUG_TAG, "Не удалось получить playerId (протокол): ", e);
    }
    catch (IOException e)
    {
        Log.e(DEBUG_TAG, "Не удалось получить playerId (IO): ", e);
    }
    return succeeded;
}
У меня вопрос по поводу вот этой строчки:
uniqueId = UUID.randomUUID().toString();
Я понимаю, что она делает, но я не понимаю следующее:
random то он random, но возможна же такая ситуация, что на двух устройствах uniqueId получится одинаковым, и что тогда будет?
Объясните понятно мне, пожалуйста, что к чему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2015, 10:33     UUID.randomUUID();
Посмотрите здесь:

Как сгенерировать uuid в линуксе? C++ Linux
Ошибка .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized
PHP БД MySQL UUID() записать в переменную
Android Для чего нужно UUID
Gentoo Linux Наполнение fstab uuid
UUID. Bluetooth connect Android
1С 1C 8.x Регистр СоответствиеОбъектовДляОбмена (UUID или GUID)
C# Как по почте отправить UUID компьютера
C# Алгоритм генерации случайного UUID
C++ Builder Как узнать UUID компьютера?
C++ Qt Генерация UUID в Qt
PostgreSQL Неверный синтаксис для uuid

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
04.02.2015, 11:41     UUID.randomUUID(); #2
http://stackoverflow.com/questions/2...uid-randomuuid
Yandex
Объявления
04.02.2015, 11:41     UUID.randomUUID();
Ответ Создать тему
Опции темы

Текущее время: 19:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru