API Android market не возвращает результаты

#android #google-play

#Android #google-play

Вопрос:

У меня есть приведенный ниже код, который вызывается в моем приложении. имя приложения, переданное в метод execute, — это любое имя приложения, которое пользователь хочет найти. изначально это работало нормально, однако теперь основное приложение, которое я хочу найти, не возвращает никаких результатов. например, если AppName=»maps», возвращается массив значений, однако, если AppName=»CapitalOne», результаты не найдены. Как я уже говорил выше, это сработало, а затем в один прекрасный день он просто перестал возвращать результаты для основных приложений, в которых я выполняю поиск. любая помощь будет принята с благодарностью.

     private Callback<AppsResponse> callback = new Callback<AppsResponse>() { 
            public void onResult(ResponseContext context, AppsResponse response) { 
                    List<Results> list = new ArrayList<Results>(); 
                    List<App> apps = response.getAppList(); 
                    for (App app : apps) { 
                            Results r = new Results(); 
                            r.setArtistName(app.getCreator()); 
                            r.setArtistId(app.getCreatorId()); 
                            r.setKind(app.getAppType().toString()); 
                            r.setTrackId("DROID_"   app.getId()); 
                            r.setPrice(app.getPrice()); 
                            r.setVersion(app.getVersion()); 
                            r.setAverageUserRating(app.getRating());
                            r.setUserRatingCount(String.valueOf(app.getRatingsCount())); 

                            r.setTrackViewUrl("https://ssl.gstatic.com/android/market/" 
                                              app.getPackageName()); 
                            list.add(r); 
                    } 
                    res.setResults(list); 
            } 
    }; 
    public T execute(String appName) throws Exception { 
            String query = appName; 
            session.login("email", "password"); 
            res = new SearchResults(); 
            AppsRequest appsRequest = AppsRequest.newBuilder().setQuery(query) .setStartIndex(0).setEntriesCount(10).setWithExtendedInfo(true) 
                            .build(); 
            session.append(appsRequest, callback); 
            session.flush(); 
            return (T) res; 
    } 
 

Это контекст, который отправляется в Android Market

 authSubToken: "token goes here"
unknown1: 0
version: 1002012
androidId: "0123456789123456"
deviceAndSdkVersion: "crespo:8"
userLanguage: "en"
userCountry: "us"
operatorAlpha: "T-Mobile"
simOperatorAlpha: "T-Mobile"
operatorNumeric: "310260"
simOperatorNumeric: "310260" 
 

Комментарии:

1. Вы проверили, существует ли приложение по-прежнему? Иногда люди удаляют приложения.

2. API Android Market отсутствует.

3. code.google.com/p/android-market-api

Ответ №1:

Официального API для Android Market нет.

Если у вас возникли проблемы со сторонним API, который вы используете, вам следует попытаться связаться с разработчиками этого API.

Ответ №2:

Вы должны предоставить свой реальный идентификатор Android, чтобы он заработал. не этот поддельный идентификатор androidId: «0123456789123456»

Вы можете получить его из gtalk service monitor http://www.honeytechblog.com/monitor-google-talk-service-android /

(числовая часть идентификатора Android)

Комментарии:

1. Поддельный идентификатор отлично работает для поиска в некоторых приложениях, но в некоторых — нет. например, поиск «maps» возвращает несколько результатов, однако поиск «Capital One» ничего не возвращает. Кроме того, я не работаю на реальном устройстве. это клиентское java-приложение fat, работающее на рабочей станции пользователя, а не на устройстве Android.

2. Этот способ неэффективен. Это не официальный API, и его разработчики могут изменять или обновлять несколько раз, поэтому вам нужно будет несколько раз менять свой код или подход. Я создал приложение с этим неофициальным API, в первый раз оно работало хорошо, затем через 1 месяц произошел сбой, и снова стало работать, затем снова произошел сбой. И этот API может извлекать информацию не обо всех приложениях на рынке. Я думаю, что у разработчиков есть своя собственная база данных, и они обновляют ее, когда захотят. Я решил не использовать этот API.