DownloadManager.Request.setNotificationVisibility не показывает уведомления в Android P - PullRequest
0 голосов
/ 21 января 2019

Я загружаю файл PDF, и уведомление о загрузке отображается в зефире, но не отображается в Android P.

Мои файлы успешно загружаются как на Android-M, так и на Android-P

Мой код здесь.

public static long DownloadData (Uri uri, Context context,String dir,String fileName,String title,String discription) {
        if(title==null){
            title="";
        }
        if(discription==null){
            discription="";
        }
        long downloadReference;
        final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
        // Create request for android download manager
        downloadManager = (DownloadManager)context.getSystemService(DOWNLOAD_SERVICE);
        DownloadManager.Request request = new DownloadManager.Request(uri);
        request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
        request.setVisibleInDownloadsUi (true);
        request.setNotificationVisibility (DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.addRequestHeader("Authorization", "Bearer " + sp.getString(SharedPreferenceKeys.PREF_AUTH_TOKEN, "Woof"));

        //Setting title of request
        request.setTitle(title);
        //Setting description of request
        request.setDescription(discription);
            request.setDestinationInExternalPublicDir(
                    dir,fileName);
               //Enqueue download and save into referenceId
        downloadReference = downloadManager.enqueue(request);

        return downloadReference;
    }

Может кто-нибудь дать решение, чтобы показать Уведомление о загрузке также в Android P? спасибо.

1 Ответ

0 голосов
/ 21 января 2019

Если проект предназначен для Android 9.0 (уровень API 28), вам необходимо добавить разрешение FOREGROUND_SERVICE в манифест.

Добавьте код ниже в ваш файл манифеста

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

Примечание. Приложения, предназначенные для Android 9.0 (уровень API 28) или выше, используют службы переднего плана должны запрашивать разрешение FOREGROUND_SERVICE. Это нормальное разрешение, поэтому система автоматически предоставляет его запрашивающее приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...