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;
} |