【问题标题】:Download App from Google Play programmatically以编程方式从 Google Play 下载应用程序
【发布时间】:2013-06-05 04:30:16
【问题描述】:
【问题讨论】:
标签:
java
android
download
【解决方案1】:
对于那些正在寻找 Java 实现的人来说,这里是:
*步骤:
- 从您的手机中收集 gmail ID、密码、Android ID 和安全令牌
- 下载Akdeniz实现的爬虫的jar文件
- 从 Akdeniz 下载 googleplay.java (cli) 的源文件
- 修改 googleplay.java
- 把它们放在一起:D
详细步骤:
Gmail ID 和密码一目了然!对于Android ID,请遵循demirozali 并使用“getAndroidID”功能。我无法让“getAuthToken”工作!因此我使用toxicbakery 来获取安全令牌。请注意,应该在AsyncTask 中调用函数“updateToken”(实际上是为您获取安全令牌),而不是在 UI 线程上。
从Akdeniz github site 下载“googleplaycrawler-0.1-SNAPSHOT.jar”文件。
我无法在 jar 文件中使用“GooglePlayAPI”类。所以我决定更改 CLI 版本。 “googleplaycrawler-0.1-SNAPSHOT.jar”中的 CLI 类名为“googleplay.java”,可从the source files 下载。
将“googleplay.java”重命名为“Changed_googleplay.java”并进行修改。这样“searchCommand()”方法返回一个String的arrayList,而不是在控制台上打印结果。
-
完成上述所有步骤后,在 jetBrains 或 ... 中创建一个项目,并将“googleplaycrawler-0.1-SNAPSHOT.jar”添加为库。此外,将“Changed_googleplay.java”添加到您的 src 目录。最后在您的应用程序中使用以下方法。您可以使用以下类搜索查询,然后下载与该查询对应的所有免费应用程序。
public void SearchAndDownload() {
String login = "xxxx@gmail.com";
String password = "xxxx";
String androidId = "xxxx";
String securitytoken = "xxxx";
String command = "search";
String query = "Maps";
String offest = "0";
String number = "5";
Changed_googleplay gp = new Changed_googleplay();
ArrayList<String> res = gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, command, "-o", offest, "-n", number, query});
res.remove(0);
if (command.equals("search")) {
System.out.println("Title"+"\t"+"Package Name"+"\t"+"Price"+"\t"+"Number of Downloads");
for (String line : res){
String[] split = line.split(Changed_googleplay.DELIMETER);
String name = split[0];
String packageName = split[1];
String creator = split[2];
String price = split[3];
String size = split[4];
String dlNO = split[5];
if(price.equals("Free")){
System.out.println(name+"\t"+packageName+"\t"+price+"\t"+dlNO);
gp.operate(new String[]{"-i", androidId, "-e", login, "-p", password, "-t", securitytoken, "download", packageName});
}
}
}
}
你可能想看看爬虫项目main page中的命令行选项列表。
玩得开心!