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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
7Alex
216 / 0 / 1
Регистрация: 24.06.2014
Сообщений: 144
#1

UUID.randomUUID(); - Программирование Android

04.02.2015, 10:33. Просмотров 725. Ответов 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 - Программирование Android
Ребят изучаю андройд совсем недавно, можете кто-нибудь понятно объяснить для чего используется UUID?

Ошибка .drectve `/DEFAULTLIB:"uuid.lib" /DEFAULTLIB:"uuid.lib" ' unrecognized - Кроссплатформенная разработка
Здраствуйте, я пользуюсь средой Dev-C++ с компилятором MinGW. Я пишу DirectX программу и каждый раз когда я компилирую компилятор сообщает...

Генерация UUID в Qt - C++ Qt
Каким образом это можно реализовать генерацию UUID по нажатию на button с помощью Qt? В qt я новичок.

Наполнение fstab uuid - Gentoo Linux
Интересует такой вопрос: есть ли способ автоматизировать наполнение fstab после установки (варианты со скриптами типа blkid, awk возможны,...

Как сгенерировать uuid в линуксе? - C++ Linux
Какими функциями сгенерировать uuid в линуксе?

Алгоритм генерации случайного UUID - C#
Написать алгоритм генерации случайного UUID вида 550e8400-e29b-41d4-a716-446655440000, все символы случайны. Алфавит возможных символов:...

Как узнать UUID компьютера? - C++ Builder
Привет всем. Собственно, вопрос в названии. Кто знает ответ, подскажите.

Неверный синтаксис для uuid - PostgreSQL
При попытке заполнить таблицу из файла выдает ошибку: неверный синтаксис для uuid: &quot;0c48acce-41a3-4353-b3b5-a734cdc5a45b&quot;. Не могу понять...

MySQL UUID() записать в переменную - PHP БД
Всем привет. Вот так я добавляю запись в бд: $query = 'INSERT INTO `u996101415i`.`Floats` (ObjID,OwnerID) VALUES...

Как по почте отправить UUID компьютера - C#
здраствуйте мне нужна помошь как я могу отправить себе на почту uuid своего компьютера скрипт для почты у меня есть а как отправить 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();
Ответ Создать тему
Опции темы

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