Volley не может подключиться к серверу на некоторых устройствах

У меня есть приложение, которое использует залп для подключения к серверу, чтобы получить некоторые онлайн-песни и загрузить данные в формате JSON. Я развернул это приложение в игровом магазине. Но многие из моих пользователей жалуются, что онлайн-песни не появляются. Каждый раз, когда для этих пользователей вызывается метод OnErrorResponse. Я тестировал это на своем устройстве и у друзей. Все нормально работает. В чем может быть проблема?

PS: я не использую политики повтора или настраиваемые заголовки.

Код:

  private void getNewSongs() {

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, newSongsUrl, null, new Response.Listener<JSONObject>() {
        @SuppressLint("LongLogTag")
        @Override
        public void onResponse(JSONObject response) {

            JSONObject artistObject = null;
            String artist = "";
            String albumID = "";
            String artistID = null;

            try {


                JSONObject songListObjects = response.getJSONObject("new_song");

                    if (songListObjects.has("data")){

                        JSONObject data = songListObjects.getJSONObject("data");

                        if (data.has("song_list")) {

                            JSONArray songList = data.getJSONArray("song_list");

                            for (int i=0;i<5;i++){

                                JSONObject songListObject = songList.getJSONObject(i);

                                if (songListObject.has("mid")) {

                                    Log.e("SongListObject has", "songmid");
                                    String songID = songListObject.getString("mid");
                                    String songTitle = songListObject.getString("name");
                                    long duration = songListObject.getLong("interval") * 1000;
                                    Log.e("Title:", songTitle);
                                    Log.e("Duration:", String.valueOf(duration));

                                    JSONObject albumObject  = songListObject.getJSONObject("album");

                                    if (albumObject.has("mid")){

                                        albumID = albumObject.getString("mid");


                                    }



                                    JSONArray artistArray = songListObject.getJSONArray("singer");

                                    for (int j = 0; j < artistArray.length(); j++) {

                                        artistObject = artistArray.getJSONObject(j);

                                        if (j == 0) {

                                            if (artistObject.has("name")) {


                                                Log.e("ArtistObject: ", "has name");

                                                artist = artistObject.getString("name");
                                                artistID = artistObject.getString("mid");

                                            }
                                        } else {

                                            if (artistObject.has("name")) {

                                                Log.e("ArtistObject: ", "has name");

                                                artist = artist + " ft. " + artistObject.getString("name");

                                            }
                                        }
                                    }

                                    String songData = "http://xx.x.x.xx.com/xxxx" + songID + ".xx?;
                                    //   String songData = "http://xx.x.xx.xx.com/xxxx"+songID+".xxx?;
                                    String albumArtURL = "https://y.xx.xx/x/xx/x" + alx+bumID + ".jpg";
                                    SongInfoModel songInfoModel = new SongInfoModel(123, songTitle,artistID, ((artist == null || (artist.length() == 0)) ? "Unknown" : artist), duration, songData, albumArtURL);
                                    SoundCloudNewSongs.add(songInfoModel);

                                    if (getView() != null){

                                        getView().findViewById(R.id.onlineProgressLoad).setVisibility(View.GONE);
                                        getView().findViewById(R.id.mainLayout).setVisibility(View.VISIBLE);

                                    }



                                }

                            }


                        }
                    }



                newSongsAdapter = new NewSongsAdapter(SoundCloudNewSongs, getContext(),listenerOnline,1);
                recyclerView_newSongs.setAdapter(newSongsAdapter);


            } catch (JSONException e) {


            }

        }
    }, new Response.ErrorListener() {
        @SuppressLint("LongLogTag")
        @Override
        public void onErrorResponse(VolleyError error) {




        }
    });

    songQueue.add(jsonObjectRequest);

}

Трудно определить проблему, если приложение работает на ваших устройствах. Используйте в своем приложении ткань, такую ​​как crashlytics. Код для отправки пользовательского журнала сбоя при получении ошибки залпа. Отправьте обновление в игровой магазин. Тогда вы сможете найти на ткани, в чем проблема.

Khemraj Sharma 01.07.2018 18:23

@Sebin Paul: Без регистрации ошибки очень сложно дать решение. Вы пытаетесь проверить это при очень медленном интернет-соединении. Тогда вы сможете понять это. Попробуйте увеличить время ожидания запроса.

User007 01.07.2018 18:24

Я никогда не говорил, что приложение вылетает. Но песни не появятся. Вызывается метод OnErrorResponse. Я знаю, что это может произойти, когда интернет-соединение медленное. Но некоторые пользователи с неплохим интернет-подключением тоже сталкиваются с этой проблемой.

Sebin Paul 01.07.2018 18:46

Рассмотрите возможность использования крашлитика.

FerDensetsu 04.07.2018 23:15
0
4
212
0

Другие вопросы по теме