Файлы расширения apk - библиотека загрузчика не поддерживает android oreo и android studio версии 3.2?

Я считаю, что исходная библиотека расширения APK была немного переработана. И не поддерживает Android Oreo.

First: I'm trying to use Google's Downloader Library and Application Licensing Service since my app is going to use APK Expansion. I read guide from https://developer.android.com/google/play/expansion-files#java and https://kitefaster.com/2017/02/15/expansion-apk-files-android-studio/,Everything is going well. But error.expansion.downloader does not exist. I did everything as guide enter image description here , enter image description here , enter image description here

Final , I have used lib from git-hub https://github.com/bolein/better-apk-expansion But it always status IDownloaderClient.STATE_FAILED_FETCHING_URL when download OBB file and it not support Android Oreo with error toast Developer warning for package Failed to post notification on channel . Code download OBB file:

        if (!expansionFilesDelivered()) {

        try {
            Intent launchIntent = SampleDownloaderActivity.this
                    .getIntent();
            Intent intentToLaunchThisActivityFromNotification = new Intent(
                    SampleDownloaderActivity
                    .this, SampleDownloaderActivity.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(
                    SampleDownloaderActivity.this,
                    0, intentToLaunchThisActivityFromNotification,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            // Request to start the download
            int startResult = DownloaderClientMarshaller.startDownloadServiceIfRequired(this,
                    pendingIntent, SampleDownloaderService.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();
        }

    } else {
        validateXAPKZipFiles();
    }

Надеюсь, кто-нибудь подскажет, пожалуйста.


0
0
714
2

Ответы 2

Попробуйте перейти на последнюю версию кода расширения с Github. Google еще не обновил свои документы. Код находится по адресу: https://github.com/google/play-apk-expansion

Я действительно не знаю вашей проблемы, но мой код ниже использует play-apk-extension и работает нормально. Сразу отметим, что при использовании эмулятора для использования Google Play поддерживается Image.

void check_apkx(){
    if (!expansionFilesDelivered()) {
        try {                  
            Intent launchIntent = MainActivity.this.getIntent();
            Intent intentToLaunchThisActivityFromNotification = new Intent(
                    MainActivity.this, MainActivity.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(
                    MainActivity.this,
                    0, intentToLaunchThisActivityFromNotification,
                    PendingIntent.FLAG_UPDATE_CURRENT);
            // Request to start the download
            DownloaderClientMarshaller.startDownloadServiceIfRequired(this,
                    pendingIntent, SampleDownloaderService.class);

        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }

    } else {
//            validateXAPKZipFiles();


    }

Другие вопросы по теме