Я получаю Volley addId.add (запрос) по нулевой ссылке в logcat после публикации строки, заполненной gcm regID, что здесь не так, пожалуйста? также имеет значение boolean, что я написал верхний истинный? Я имею в виду getRegId(); будет работать только при первом запуске?Получить null Ссылка на Volley
public class MainActivity extends AppCompatActivity {
String projectNumber = "*********";
GoogleCloudMessaging gcm;
String regId ="";
String TAG = "Register Service";
RequestQueue addId;
String url = "***************";
String version = BuildConfig.VERSION_NAME;
boolean firstRun = true;
double d = Double.parseDouble(version);
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
isNetworkConnected();
SharedPreferences prefs = getSharedPreferences("PREFS_NAME", 0);
firstRun = prefs.getBoolean("FIRST_RUN", true);
if(firstRun){
prefs = getSharedPreferences("PREFS_NAME", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("FIRST_RUN",false);
editor.apply();
getRegId();
}
...........
public void sendId() {
StringRequest request = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("The registration", "success sent");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("The registration", "error sent");
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("gcmregid", regId);
return params;
}
};
addId.add(request);
}
public void getRegId() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
if (gcm == null) {
InstanceID instanceID = InstanceID.getInstance(getApplicationContext());
regId = instanceID.getToken(projectNumber, GoogleCloudMessaging.INSTANCE_ID_SCOPE);
msg = "Device registration, registration ID=" + regId;
Log.i(TAG, msg);
if (regId.isEmpty()){
instanceID = InstanceID.getInstance(getApplicationContext());
regId = instanceID.getToken(projectNumber, GoogleCloudMessaging.INSTANCE_ID_SCOPE);
}
}
} catch (IOException e) {
e.printStackTrace();
msg = "Error :" + e.getMessage();
}
return msg;
}
@Override
protected void onPostExecute(String s) {
sendId();
}
}.execute(null, null, null);
}
private boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
Toast.makeText(getApplicationContext(), "No Network", Toast.LENGTH_SHORT).show();
return false;
}
return true;
}
}
=========================================== ========================
см. Мой ответ ниже. –