- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经审查了几篇关于此的帖子,并且我已经尝试了六种建议的解决方案。我有一些与此工作几乎相同的东西,而不会在我编写的另一个应用程序中引发异常,但我只是无法让这个不引发异常,尽管文件确实被传输了!正在设置权限并且文件确实可以正常传输,但仍然会引发异常,尽管它不会使应用程序崩溃。
我所拥有的是:
fun shareVideo(videoFile: File, context: Context) {
if(videoFile.exists()) {
Timber.i("Video file exists and the length in bytes is: ${videoFile.length()}")
} else {
Timber.w("Video file does not exist. Exiting.")
return
}
val uris = arrayListOf<Uri>()
val uri = FileProvider.getUriForFile(context.applicationContext, context.packageName + ".provider", videoFile)
Timber.i("Uri: $uri + path: ${uri.path}")
uris.add(uri)
val intent = Intent()
intent.action = Intent.ACTION_SEND_MULTIPLE
intent.putExtra(Intent.EXTRA_SUBJECT, "Shared files")
intent.type = "video/mp4"
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
Timber.i("Intent: $intent")
try{
ContextCompat.startActivity(context, Intent.createChooser(intent, "Shared Videos"), null)
} catch (e: Exception) {
Timber.e("Exception starting activity. \nException was ${e.message}\n Stack trace to follow:\n ${e.stackTrace}")
}
}
堆栈跟踪如下所示:
2021-03-07 14:21:59.570 6039-6207/com.company.app E/DatabaseUtils: Writing exception to parcel
java.lang.SecurityException: Permission Denial: reading androidx.core.content.FileProvider uri content://com.company.app.provider/external_files/1615148514218.mp4 from pid=32136, uid=1000 requires the provider be exported, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:820)
at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:684)
at android.content.ContentProvider$Transport.query(ContentProvider.java:239)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:106)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)
Timber 日志输出如下所示:
2021-03-07 14:33:32.713 7396-7396/com.company.app I/StorageUtilsKt: Video file exists and the length in bytes is: 7511455
2021-03-07 14:33:32.719 7396-7396/com.company.app I/StorageUtilsKt: Uri: content://com.company.app.provider/external_files/1615149206171.mp4 + path: /external_files/1615149206171.mp4
2021-03-07 14:33:37.337 7396-7396/com.company.app I/StorageUtilsKt: Intent: Intent { act=android.intent.action.SEND_MULTIPLE typ=video/mp4 flg=0x10000001 (has extras) }
2021-03-07 14:33:38.604 7396-7589/com.company.app E/DatabaseUtils: Writing exception to parcel
所以文件就在那里,我在附件中看到它确实添加了它,我确实通过电子邮件/等获得了它。并且可以查看,但是在日志中抛出异常。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<cache-path name="cache" path="/"/>
<external-cache-path name="external_cache" path="." />
<external-path name="external" path="." />
<external-files-path name="external_files" path="." />
<files-path name="app_videos" path="." />
</paths>
我的 list 中有这个:
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
一切看起来都与我拥有的应用程序一模一样,但这个应用程序抛出了异常。
最佳答案
在这里查看这个 https://stackoverflow.com/a/59439316
您需要为可用于此 Intent 的每个可用应用授予权限。
关于android - Permission Denial : reading androidx. core.content.FileProvider 试图共享视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66521216/
因此,这更像是关于防止 DoS 攻击的最佳实践的一般性问题,我只是想了解大多数人如何处理来自同一 IP 地址的恶意请求,这是我们目前遇到的问题。 我认为最好尽可能高地阻止真正恶意 IP 的 IP,以防
我正在使用sound_stream包从麦克风获取流,并将其发送到Google Speech To Text Api。当我尝试使用简单的屏幕(如仅一个按钮)来开始收听和获取转录时,它工作正常。我可以立即
我的 Android 应用程序存在权限问题:这里是日志。 06-25 17:25:35.862 12039-13799/? E/DatabaseUtils﹕ Writing exception to
用于运行的应用程序。然而,就在最近它开始停止工作。该设备运行的是 Android Nutella。下面是 LogCat。 java.lang.SecurityException: Permissio
我正在尝试编写一个简单的 android 应用程序来关闭我的手机屏幕。当我运行这个应用程序时,我得到安全异常:权限拒绝应用程序需要 android.permission.DEVICE_POWER。我知
我正在尝试使用 DownloadManager 下载文件。是的,我知道人们已经遇到了这个错误。但我的似乎没有解决。我每次都试过了。 我已经取消了这个权限: 我的代码 public void st
我设置了一个 ContentProvider,仅供我的应用内部使用,用流响应 URI,我通过该流构建并提供一个 zip 文件。 Uri 作为额外的 (Intent.EXTRA_STREAM) 传递给
我点击我的 AdView 并在 Play 商店中打开 alibaba app 页面,然后安装它。之后,我开始收到此错误,每当我点击 AdView 时,我的应用程序就会崩溃。卸载这个阿里巴巴应用程序后,
我刚刚升级到新版本的 gmail (v2.3.5),我有一个应用程序可以查询内容提供者以获取有关接收消息的联系人的详细信息...... 对于最新版本,我收到以下错误: java.lang.Securi
我的构建被破坏了,因为 yarn audit说我的依赖项存在漏洞: yarn audit yarn audit v1.22.5 ┌───────────────┬───────────────────
我成功地让这些 c2dm 实现在我的应用程序上运行。 当设备突然没有收到 c2dm 消息时,我遇到了一个问题。这次它拒绝了我的许可,我对此感到困惑: Permission Denial: receiv
不幸的是,当我尝试运行我的墙纸时,我收到一条错误消息,提示 Permission Denial starting Intent 并且需要 android.permission.BIND_WALLPAP
我是 android 开发的新手。在我的应用程序中,我有一个显示在 ListView 中的联系人类。对于我的联系人,我有一张从图库中获得的图像,图像 uri 存储在数据库中。在我最后Post 我的问题
我正在学习有关在 Android 应用程序中使用相机的教程。我在模拟器和物理设备上运行调试时收到错误“权限拒绝:无法使用相机”。我在 list 文件中尝试了多种权限。似乎大多数遇到此错误的人都有错字、
我的程序一直运行良好,但我想我一定是不小心更改了一些我不应该做的事情。我让我的程序在按下按钮时运行“UpdateService”,但现在它不运行,并且调试显示以下两行: 01-05 21:43:39.
我有以下问题。我们创建了一个游戏中心应用程序,它提供了一个框架来创建临时 wifi 游戏并管理此类游戏的高分/遭遇。 高分的数据库访问是通过提供者完成的: 我们的演示游戏(作为 future 游戏
我在 Oreo Android 8.0/8.1 设备上使用日历提供程序时遇到应用程序崩溃问题。在运行 Nougat 及以下版本的我的设备上未显示该问题。 Permission Denial: read
我的应用中有两个 Activity ,MainActivity 调用 ImagePicker,它有一个 GridView 布局手机图库中的所有图像,我使用 ContentResolver 来获取光标。
背景 我有一个根设备,它是 Galaxy S3 I9300,带有基于三星股票的 ROM,基于 Android 4.3。 我在使用此设备上运行的应用程序从未遇到任何问题。 问题 从昨天开始(并且我没有在
我目前正在调整我的应用以适应 Android 11。当我想共享文件时,我在 logcat 中收到以下错误消息: Permission Denial: reading androidx.core.con
我是一名优秀的程序员,十分优秀!