0

В моем проекте я могу загрузить 470mb моего файла расширения, и он загружается во время загрузки моего apk. Если мой файл расширения не найден, как мне настроить приложение для загрузки файла расширения из магазина воспроизведения? Я пробовал следовать инструкциям, приведенным в следующей ссылке enter link description hereКак вызвать файл расширения из моего кода, если файл расширения не найден?

+0

«Я пробовал следовать инструкциям ...»: и это сработало? – Henry

ответ

0

Пожалуйста, следуйте образцу кода, доступному для загрузки файла расширения вместе с apk. Ваша первая активность приложения должна быть активна при загрузке файла расширения, в которой должен быть установлен один метод, который будет проверять файл расширения уже загружен или нет.

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; 
    } 

Если этот метод возвращает ложным вам необходимо скачать расширение file.So вам нужно написать код загрузки файла для расширения в остальном части, как показано ниже.

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(); 
       } 

В коде выше ExpansionDownloader является основным классом, который будет обрабатывать загрузку process.You может получить ExpansionService и ExpansionReceiver классов из примеров коды.

Смежные вопросы