2013-06-05 14 views
13

Ho bisogno di scaricare alcune app da google play per scopi di analisi. Ma non voglio farlo manualmente (devo farlo spesso e ogni volta che le App che voglio scaricare cambiano!).Scarica l'app da Google Play programmaticamente

Quindi, la domanda è, se posso scrivere un programma per scaricare le app o meno. Se è possibile, come?

ho visto questo plugin per Chrome: http://codekiem.com/2012/02/24/apk-downloader/ ma non posso fidarmi l'autore (l'App richiede Google utente e pass e ID del dispositivo) e hanno deciso di attuare il mio programma.

+2

Nizza Domanda Caro +1 –

risposta

1

Sì! Molto possibile. Controllare il seguente link http://thomascannon.net/blog/2011/06/downloading-apks-from-android-market/

+0

Grazie. Sembra essere una risposta corretta. Lo contrassegnerò come risposta accettata, dopo averlo testato. Poiché l'API di google cambia occasionalmente! – Z0lenDer

+1

@ blganesh101 È possibile tramite il codice java? –

+0

Non ho provato ma il seguente dovrebbe funzionare http://developer.android.com/google/play-services/auth.html e http://developer.android.com/google/play-services/index .html – blganesh101

1

Per quelli di voi che sono alla ricerca di un'implementazione Java, eccolo:

all'inizio Procedura livello:

  1. riuniscono gmail ID, la password, Android ID, e token di sicurezza dal telefono
  2. scarica il file jar per il crawler implementato da Akdeniz
  3. scarica il file di origine per googleplay.java (cli) da Akdeniz
  4. modificare il googleplay.java
  5. messo tutto insieme: D

la procedura dettagliata:

  1. Gmail ID e la password sono evidenti! Per l'ID Android seguire lo demirozali e utilizzare la funzione "getAndroidID". Non riuscivo a far funzionare "getAuthToken"! Pertanto ho usato toxicbakery per ottenere il token di sicurezza . Si noti che la funzione "updateToken" (che in realtà ottiene il token di sicurezza) deve essere chiamata in un AsyncTask non in Thread UI.

  2. Da Akdeniz github site scaricare il file "googleplaycrawler-0,1-SNAPSHOT.jar".

  3. Non ho potuto utilizzare la classe "GooglePlayAPI" nel file jar. Così ho deciso di cambiare la versione della CLI. La classe CLI in "googleplaycrawler-0.1-SNAPSHOT.jar" si chiama "googleplay.java" che può essere scaricato da the source files.

  4. Rinomina "googleplay.java" a "Changed_googleplay.java" e modificarlo. Ad esempio, il metodo "searchCommand()" restituisce una listaAmerica di String, anziché stampare il risultato sulla console.

  5. Dopo aver eseguito tutti i passaggi precedenti, creare un progetto in jetBrains o ... e aggiungere "googleplaycrawler-0.1-SNAPSHOT.jar" come libreria. Inoltre, aggiungi "Changed_googleplay.java" alla tua directory src. Finalmente usa il seguente metodo nella tua applicazione. È possibile utilizzare la classe seguente per cercare una query e quindi scaricare tutte le app gratuite corrispondenti a tale query.

    public void SearchAndDownload() { 
        String login = "[email protected]"; 
        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}); 
          } 
         } 
        } 
    } 
    

Si consiglia di dare un'occhiata alla lista delle opzioni della riga di comando nel progetto crawler main page.

buon divertimento!

Problemi correlati