gpt4 book ai didi

android - 分享内容 : Permission Denial when using Intent. createChooser

转载 作者:行者123 更新时间:2023-12-05 07:01:54 26 4
gpt4 key购买 nike

我目前正在调整我的应用以适应 Android 11。当我想共享文件时,我在 logcat 中收到以下错误消息:

Permission Denial: reading androidx.core.content.FileProvider uricontent://... from pid=20333, uid=1000 requires the provider beexported, or grantUriPermission()

但我的应用程序仍在运行并且共享工作没有问题。

问题只在我使用时出现:

startActivity(Intent.createChooser(intent, "share"));

它不会在我使用时发生:

startActivity(intent);

当然,在 AndroidManifest.xml 中,我将 android:requestLegacyExternalStorage 设置为 true。 targetSdkVersion 为 29。

Uri uri = FileProvider.getUriForFile(this, AUTHORITY_FILE, file);

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "subject");
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

startActivity(Intent.createChooser(intent, "share")); // error
startActivity(intent); // no error

最佳答案

使用 ShareCompat.IntentBuilder。它正在为您做所有正确的事情。有关潜在问题,请参阅 https://issuetracker.google.com/issues/173137936

Uri uri = FileProvider.getUriForFile(context, AUTHORITY_FILE, file);

//TODO: Use the proper MIME type. text/plain is for sharing text via EXTRA_TEXT!
// If the file actually contains text, use the type "text/*".
new ShareCompat.IntentBuilder(context)
.setType("text/plain")
.addStream(uri)
.setSubject("subject")
.setChooserTitle("share")
.startChooser();

关于android - 分享内容 : Permission Denial when using Intent. createChooser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63723656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com