- 論壇徽章:
- 0
|
如果你在Android Market上發(fā)布了程序,怎么通過程序訪問,查看程序的信息呢?谷歌大神為我們提供了--An open-source API for the Android Market,另外,也給Ruby和PHP都留了接口,當然了訪問是需要Google帳戶滴,更多信息請看考:http://code.google.com/p/android-market-api/
OK,廢話少說,That's it!
Current progress¶
You can browse market with any carrier or locale you want.
Search for apps using keywords or package name.
Retrieve an app info using an app ID.
Retrieve comments using an app ID.
Get PNG screenshots and icon
Requirement:
A google account is required.
Include androidmarketapi-X.Y.jar and protobuf-java-X.Y.Z.jar in your classpath ,下載地址:http://code.google.com/p/android-market-api/downloads/list
需要把這兩個JAR導入項目中,由于很好理解,代碼就不加注釋了 :-)
HowToSearchApps :
You can search by package using :
String query = "pname:<package>";
By developper name :
String query = "pub:<name>";
String query = "pname:com.luckyxmobile.timers4me";// 通過包名查找程序
MarketSession session = new MarketSession();
session.login("your gmail account", "your password");
AppsRequest appsRequest = AppsRequest.newBuilder().setQuery(query).setStartIndex(0).setEntriesCount(10).setWithExtendedInfo(true).build();
session.append(appsRequest, new MarketSession.Callback<AppsResponse>() {
@Override
public void onResult(ResponseContext context, AppsResponse response) {
TextView text = (TextView) findViewById(R.id.text);
String id = response.getApp(0).getId();
String creatorID = response.getApp(0).getCreatorId();
String creator = response.getApp(0).getCreator();
String packageName = response.getApp(0).getPackageName();
String price = response.getApp(0).getPrice();
String rating = response.getApp(0).getRating();
int ratingCount = response.getApp(0).getRatingsCount();
String title = response.getApp(0).getTitle();
String version = response.getApp(0).getVersion();
int versionCode = response.getApp(0).getVersionCode();
int serializedSize = response.getApp(0).getSerializedSize();
ExtendedInfo extendedInfo = response.getApp(0).getExtendedInfo();
text.setText("id:" + id + "\nCreatorId:" + creatorID
+ "\nCreator:" + creator + "\nPackageName:"+ packageName + "\nPrice:" + price + "\nrating:"+ rating + "\nRatingCount:" + ratingCount + "\ntitle:"
+ title + "\nVersion:" + version + "\nversionCode:"
+ versionCode + "\nDownloadsCount:"
+ extendedInfo.getDownloadsCount()
+ "\nDownloadsCountText:"+extendedInfo.getDownloadsCountText()+ "\nInstallSize:" + extendedInfo.getInstallSize()
+ "\nSerializedSize:" + serializedSize+ "\nDecription:" + extendedInfo.getDescription()+ "\nContactEmail:" + extendedInfo.getContactEmail()+ "\nContactPhone:" + extendedInfo.getContactPhone()+ "\nContactWebsite:"
+ extendedInfo.getContactWebsite());
}
});
session.flush();//發(fā)送并刷新
這是Timers4Me的運行結(jié)果:
232351880.png (35.57 KB, 下載次數(shù): 21)
下載附件
2011-01-27 20:07 上傳
HowToGetAppComments:
CommentsRequest commentsRequest = CommentsRequest.newBuilder().setAppId("7065399193137006744").setStartIndex(0).setEntriesCount(10).build();session.append(commentsRequest, new Callback<CommentsResponse>() {
@Override public void onResult(ResponseContext context, CommentsResponse response) {
System.out.println("Response : " + response);
// response.getComments(0).getAuthorName()
// response.getComments(0).getCreationTime()
// ...
} });
session.flush();
HowToGetAppScreenshot :
GetImageRequest imgReq = GetImageRequest.newBuilder().setAppId("-7934792861962808905").setImageUsage(AppImageUsage.SCREENSHOT).setImageId("1").build();
session.append(imgReq, new Callback<GetImageResponse>() {
@Override public void onResult(ResponseContext context, GetImageResponse response) {
try {
FileOutputStream fos = new FileOutputStream("icon.png");
fos.write(response.getImageData().toByteArray());
fos.close();
} catch(Exception ex) {
ex.printStackTrace();
}}});
session.flush();
以上只是拋磚引玉,更多精彩,只有動手才能看到,good luck!
本文出自 “超越夢想” 博客,請務必保留此出處http://breezy.blog.51cto.com/2400264/431834 |
|