#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 отсутствует.
Ответ №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.