首页 > 解决方案 > Flutter错误:使用flutter下载器包下载后无法从通知栏打开文件

问题描述

我正在做一个flutter项目,我有一个下载按钮可以从URL下载pdf,所以我在我的项目中使用flutter_downloader包,当我点击下载文件时,文件下载成功,但是当我点击在文件未打开的通知上,然后当我导航到内部存储时,我可以找到该文件并查看它。

这是我的AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.brindavan_student">
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
   <application
        android:label="brindavan_student"
         android:requestLegacyExternalStorage="true"
        android:icon="@mipmap/ic_launcher">
     


        <activity
            android:name=".MainActivity"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <!-- Displays an Android View that continues showing the launch screen
                 Drawable until Flutter paints its first frame, then this splash
                 screen fades out. A splash screen is useful to avoid any visual
                 gap between the end of Android's launch screen and the painting of
                 Flutter's first frame. -->
            <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@drawable/launch_background"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
           <provider
    android:name="vn.hunghd.flutterdownloader.DownloadedFileProvider"
    android:authorities="${applicationId}.flutter_downloader.provider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/provider_paths"/>
     
</provider>

        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>

</manifest>

这是颤振代码

final status = await Permission.storage.request();

        if (status.isGranted) {
            final id = await FlutterDownloader.enqueue(
                    url: data.notes[index],
                    savedDir: '/storage/emulated/0/Download/',
                    fileName: fileName,
                    showNotification: true,
                    openFileFromNotification: true,
                   );
                   } else {
                           print('permission denied'); //even tough I have added this line
                   }

我还有什么要补充的吗?

标签: flutterflutter-dependenciesflutter-packages

解决方案


推荐阅读