flutter - 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
}
我还有什么要补充的吗?
解决方案
推荐阅读
- f# - 试图过滤掉一个序列中不在另一个序列中的值
- sql - 根据 Id 连接将多列组合成一行的查询
- r - ggplot geom_density:改变颜色
- neural-network - R中nnet函数中参数“Size”的适当值是多少?
- php - PHP-FPM 进程越来越大,内存越来越大
- reactjs - 即使两者版本相同,也会出现 React Native 版本不匹配错误
- json - 使用角度2将两个对象与多个键组合
- python - 是否可以在 Cython .pxd 上重载 cpdef 声明?
- javascript - 使用动态数据更新 chartJS
- scala - 在 Spark Scala 中实现隔离森林