再次写这个是非常郁闷的,主要怪我,live writter 2011还不支持,辛辛苦苦写了半天,不小心按住了刷新键,结果写的东西全没了,虽然很气愤,虽然手已经冰凉,还是坚持又整理了一遍,也希望51CTO以后能随时保存草稿,这是一个非常严重的问题:

如果你已经在Android Market上发布了应用程序,怎么通过编程方式访问Android Market呢?谷歌大神已经为我们提供好了接口-An open-source API for the Android Market,不仅Android程序可以访问, Ruby 和PHP也提供了借口,更多信息请参考: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

  1. *(1) A Google Account
  2. *(2) 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 using :

By package name;

            
  1. String query = "pname:";  

 By developper name :

            
  1. String query = "pub:"

 通过包名查看程序关键代码:

            
  1. String query = "pname:com.luckyxmobile.timers4me";// 通过包名查找程序  
  2. MarketSession session = new MarketSession();  
  3. session.login("your gmail account""your password");  
  4. AppsRequest appsRequest = AppsRequest.newBuilder().setQuery(query)  
  5. .setStartIndex(0).setEntriesCount(10).setWithExtendedInfo(true).build();  
  6. session.append(appsRequest, new MarketSession.Callback() {  
  7. @Override 
  8. public void onResult(ResponseContext context, AppsResponse response) {  
  9. TextView text = (TextView) findViewById(R.id.text);  
  10. String id = response.getApp(0).getId();  
  11. String creatorID = response.getApp(0).getCreatorId();  
  12. String creator = response.getApp(0).getCreator();  
  13. String packageName = response.getApp(0).getPackageName();  
  14. String price = response.getApp(0).getPrice();  
  15. String rating = response.getApp(0).getRating();  
  16. int ratingCount = response.getApp(0).getRatingsCount();  
  17. String title = response.getApp(0).getTitle();  
  18. String version = response.getApp(0).getVersion();  
  19. int versionCode = response.getApp(0).getVersionCode();  
  20. int serializedSize = response.getApp(0).getSerializedSize();  
  21. ExtendedInfo extendedInfo = response.getApp(0).getExtendedInfo();  
  22. text.setText("id:" + id + "\nCreatorId:" + creatorID  
  23. "\nCreator:" + creator + "\nPackageName:" 
  24. + packageName + "\nPrice:" + price + "\nrating:" 
  25. + rating + "\nRatingCount:" + ratingCount + "\ntitle:" 
  26. + title + "\nVersion:" + version + "\nversionCode:" 
  27. + versionCode + "\nDownloadsCount:" 
  28. + extendedInfo.getDownloadsCount()  
  29. "\nDownloadsCountText:" 
  30. + extendedInfo.getDownloadsCountText()  
  31. "\nInstallSize:" + extendedInfo.getInstallSize()  
  32. "\nSerializedSize:" + serializedSize  
  33. "\nDecription:" + extendedInfo.getDescription()  
  34. "\nContactEmail:" + extendedInfo.getContactEmail()  
  35. "\nContactPhone:" + extendedInfo.getContactPhone()  
  36. "\nContactWebsite:" 
  37. + extendedInfo.getContactWebsite());  
  38. }  
  39. });  
  40. .flush();//发送并刷新 

运行结果:

 

HowToGetAppComments  :

            
  1. CommentsRequest commentsRequest = CommentsRequest.newBuilder().setAppId("7065399193137006744") .setStartIndex(0).setEntriesCount(10)build();         
  2. session.append(commentsRequest, new Callback() {   
  3. @Override      
  4. public void onResult(ResponseContext context, CommentsResponse response) {    
  5. System.out.println("Response : " + response);      
  6. // response.getComments(0).getAuthorName()       
  7. // response.getComments(0).getCreationTime()       
  8. // ...      
  9. } });   
  10. session.flush(); 

HowToGetAppScreenshot   :

            
  1. GetImageRequest imgReq = GetImageRequest.newBuilder().setAppId("-7934792861962808905").setImageUsage(AppImageUsage.SCREENSHOT).setImageId("1").build();       
  2. session.append(imgReq, new Callback() {                                                       
  3. @Override         
  4. public void onResult(ResponseContext context, GetImageResponse response) {  
  5. try {                                                
  6. FileOutputStream fos = new FileOutputStream("icon.png");                                   
  7. fos.write(response.getImageData().toByteArray());                                        
  8. fos.close();                                  
  9. catch(Exception ex) {                           
  10. ex.printStackTrace();                                       
  11.   }        
  12. } });   
  13. session.flush();  

最后提醒一下哦,不要忘记在配置文件中加上访问Internet的权限,当然了,我只是抛砖引玉的作用,动手才能更加精彩,Good luck!

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android(安卓)1.6 支持更多的屏幕大小和分辨率
  3. 给Unity的Android工程加上广告代码(1)
  4. Android初试--了解和认识Android
  5. 静态扫描工具提升Android代码质量
  6. android 系统开发
  7. Android(安卓)Context关于POWER_SERVICE的实际应用
  8. Android(安卓)游戏开发之服务器端
  9. 如何在命令行下使用Android(安卓)NDK交叉编译工具

随机推荐

  1. android的单元测试摘要
  2. 虚拟键盘弹出时挡住EditText的解决方案
  3. Android01————快速入门
  4. Android(安卓)Studio 在 Mac 上如何真机
  5. 【Android view】获取状态栏高度statu ba
  6. Android Framework 动态修改机器型号
  7. Android(安卓)中clipToPadding 和 clipCh
  8. android 更换皮肤项目
  9. Android 修改默认的ProgressBar的动画效
  10. android ndk安装是使用