0

In meinem Projekt kann ich die 470MB meiner Erweiterungsdatei hochladen und es wird heruntergeladen, während ich meine APK herunterlade. Wenn meine Erweiterungsdatei nicht gefunden wird, wie soll ich meine App anweisen, die Erweiterungsdatei vom Play Store herunterzuladen? Ich habe versucht, folgen Sie den Anweisungen in der folgenden Link enter link description hereWie kann ich die Erweiterungsdatei von meinem Code aufrufen, wenn die Erweiterungsdatei nicht gefunden wird?

+0

"Ich habe versucht, den Anweisungen zu folgen ...": und hat es funktioniert? – Henry

Antwort

0

Bitte folgen Sie den Beispielcode für den Download von Erweiterungsdateien zusammen mit apk. Ihre erste Aktivität der Anwendung muss eine Erweiterungsdatei-Downloader-Aktivität sein, bei der es eine Methode geben muss, die prüft, ob die Erweiterungsdatei bereits heruntergeladen wurde oder nicht.

boolean expansionFilesDelivered() { 
     for (XAPKFile xf : xAPKS) { 
      String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, 
        xf.mFileVersion); 
      if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false)) 
       return false; 
     } 
     return true; 
    } 

Wenn diese Methode false zurückgibt Sie benötigen Erweiterung herunterladen file.So Sie Download-Code für Erweiterungsdatei in anderen Teil wie unten schreiben müssen.

initializeDownloadUI(); 
    Intent launchIntent = ExpansionDownloader.this.getIntent(); 
        Intent intentToLaunchThisActivityFromNotification = new Intent(
          ExpansionDownloader.this, 
          ExpansionDownloader.this.getClass()); 
        intentToLaunchThisActivityFromNotification 
          .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK 
            | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intentToLaunchThisActivityFromNotification 
          .setAction(launchIntent.getAction()); 

        if (launchIntent.getCategories() != null) { 
         for (String category : launchIntent.getCategories()) { 
          intentToLaunchThisActivityFromNotification 
            .addCategory(category); 
         } 
        } 

        // Build PendingIntent used to open this activity from 
        // Notification 
        PendingIntent pendingIntent = PendingIntent.getActivity(
          ExpansionDownloader.this, 0, 
          intentToLaunchThisActivityFromNotification, 
          PendingIntent.FLAG_UPDATE_CURRENT); 
        // Request to start the download 
        int startResult = DownloaderClientMarshaller 
          .startDownloadServiceIfRequired(this, pendingIntent, 
            ExpansionService.class); 

        if (startResult != DownloaderClientMarshaller.NO_DOWNLOAD_REQUIRED) { 
         // The DownloaderService has started downloading the files, 
         // show progress 
         initializeDownloadUI(); 
         return; 
        } // otherwise, download not needed so we fall through to 
         // starting the movie 
       } catch (NameNotFoundException e) { 
        Log.e(LOG_TAG, "Cannot find own package! MAYDAY!"); 
        e.printStackTrace(); 
       } 

In obigen Code ExpansionDownloader ist Hauptklasse, die process.You Download wird umgehen können ExpansionService und ExpansionReceiver Klassen von Beispielcode erhalten.

Verwandte Themen