私はこれらのライブラリを使用して、いくつかのアプリのカテゴリを収集するために、AsyncTaskを実現:
このリンクで見つけることができます:
https://code.google.com/archive/p/android-market-api/downloads
http://mvnrepository.com/artifact/com.google.protobuf/protobuf-java
はここでdoInBackgroundのコードだ()メソッド:
final ArrayList<MarketApplication> results = new ArrayList<>();
AccountManager am = AccountManager.get(MainActivity.this.getBaseContext());
Account[] accounts = am.getAccountsByType("com.google");
if (accounts.length > 0) {
try {
AccountManagerFuture<Bundle> accountManagerFuture =
am.getAuthToken(accounts[0], "android", null, MainActivity.this, null,
null);
Bundle authTokenBundle = accountManagerFuture.getResult();
String authToken =
authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN).toString();
MarketSession session = new MarketSession();
session.setAuthSubToken(authToken);
Market.AppsRequest appsRequest = Market.AppsRequest.newBuilder()
.setQuery(params[0])
.setStartIndex(0).setEntriesCount(10)
.setWithExtendedInfo(true)
.build();
session.append(appsRequest, new MarketSession.Callback<Market.AppsResponse>() {
public void onResult(Market.ResponseContext context, Market.AppsResponse
response) {
for (int i = 0; i < response.getEntriesCount(); i++) {
MarketApplication marketApplication = new MarketApplication();
Market.App app = response.getApp(i);
marketApplication.setName(app.getTitle());
Market.App.ExtendedInfo extendedInfo = app.getExtendedInfo();
marketApplication.setCategory(extendedInfo.getCategory());
results.add(marketApplication);
}
}
});
session.flush();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return results;
カテゴリー情報は、ExtendedInfoからだ、とアプリケーションの名前は、カスタムクラスMarketApplication
に追加されます。 params[0]
は、興味のあるアプリ名のようなクエリ文字列です。 特定のクエリを作成する開発者を支援wikiページがあります:このサービスは、Androidマニフェストでこれらの権限を追加するために必要であることを
https://code.google.com/archive/p/android-market-api/wikis/HowToSearchApps.wiki
テイク予告:
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
これからアイデアを取ってください。 https://support.google.com/googleplay/android-developer/answer/113475?hl=en –
あなたは 'addCategory()'関数を使ってカテゴリを追加していますので、それらの場所を保存することはできません値。 –
@ Sam-In-TechValensは、市場に出回っているアプリをリストするためのカテゴリです。インテントカテゴリはまったく違う獣です。 – FoamyGuy