This question is locked. New answers and comments are not allowed.
i am having trouble sending push notifications to segments of users as no userid is getting attached to device registrations. i am checking device registeration after login, in the main activity. all other parameters such as hardware info, location and push token are getting set correctly, but not the user id.
private
void
registerDeviceTelerik
() {
Map<String, Object> params =
new
HashMap<>();
params
.put
(
"UserId"
, userId);
params
.put
(
"PushToken"
, TokenGCM);
params
.put
(
"HardwareId"
, android_id);
params
.put
(
"HardwareModel"
, model);
params
.put
(
"PlatformType"
,
3
);
params
.put
(
"PlatformVersion"
, release);
params
.put
(
"Locale"
, locale);
params
.put
(
"TimeZone"
,
"Europe/London"
);
Log
.d
(
TAG
, params
.toString
());
JsonObjectRequest postRequest =
new
JsonObjectRequest
(Request
.Method
.POST
, TELERIK_URL,
new
JSONObject
(params),
new
Response
.Listener
<JSONObject>() {
@Override
public
void
onResponse
(JSONObject response) {
try
{
Log
.v
(
"Response:%n %s"
, response
.toString
(
4
));
}
catch
(JSONException e) {
e
.printStackTrace
();
}
}
},
new
Response
.ErrorListener
() {
@Override
public
void
onErrorResponse
(VolleyError error) {
if
(error
.getMessage
() != null) {
Log
.e
(
"Error: "
, error
.getMessage
());
}
}
}) {
@Override
public
Map<String, String>
getHeaders
() throws AuthFailureError {
HashMap<String, String> headers =
new
HashMap<>();
headers
.put
(
"Content-Type"
,
"application/json; charset=utf-8"
);
if
(!SingletonClass
.getInstance
()
.getAccessToken
()
.getToken
()
.toString
()
.equals
(null)) {
headers
.put
(
"Authorization"
,
"bearer "
+ SingletonClass
.getInstance
()
.getAccessToken
()
.getToken
()
.toString
());
}
return
headers;
}
};
ConnectionManager
.getInstance
(MainActivity
.this
)
.add
(postRequest);
}
private
void
isDeviceRegisteredTelerik
() {
isRegistered =
false
;
try
{
TELERIK_DEVICE_URL += URLEncoder
.encode
(android_id,
"UTF-8"
);
}
catch
(UnsupportedEncodingException e) {
e
.printStackTrace
();
}
JsonObjectRequest postRequest =
new
JsonObjectRequest
(TELERIK_DEVICE_URL,
new
JSONObject
(),
new
Response
.Listener
<JSONObject>() {
@Override
public
void
onResponse
(JSONObject response) {
try
{
Log
.d
(
"Response:%n %s"
, response
.toString
(
4
));
Log
.d
(
"Device registered: "
,
"TRUE"
);
isRegistered =
true
;
}
catch
(JSONException e) {
isRegistered =
false
;
Log
.d
(
"Device registered: "
,
"FALSE"
);
e
.printStackTrace
();
registerDeviceTelerik
();
}
}
},
new
Response
.ErrorListener
() {
@Override
public
void
onErrorResponse
(VolleyError error) {
if
(error
.getMessage
() != null) {
Log
.e
(
"Error: "
, error
.getMessage
());
Log
.d
(
"Device registered: "
,
"FALSE"
);
Log
.e
(
"Device registered: "
,
"FALSE"
);
}
else
{
registerDeviceTelerik
();
}
}
});
ConnectionManager
.getInstance
(MainActivity
.this
)
.add
(postRequest);
}