MIUI - 尝试启动 ACTION_SEND / ACTION_VIEW 意图时权限被拒绝
Posted
技术标签:
【中文标题】MIUI - 尝试启动 ACTION_SEND / ACTION_VIEW 意图时权限被拒绝【英文标题】:MIUI - Permission denied while trying to start ACTION_SEND / ACTION_VIEW intent 【发布时间】:2021-03-13 02:50:24 【问题描述】:我遇到了一个问题,该问题仅出现在 MIUI 设备上。我正在尝试使用以下代码分享一些文本
private fun shareTextWithCallback(text: String)
val title = getString(resId)
val intent = Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, text)
.setType("text/plain")
val receiver = Intent(requireContext(), ShareCompletedReceiver::class.java)
val pendingIntent = PendingIntent.getBroadcast(requireContext(), 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT)
val chooser = Intent.createChooser(intent, title, pendingIntent.intentSender)
startActivity(chooser)
在从意图选择器中选择项目后,在 MIUI 设备上,没有任何反应。 这是我在日志中发现的:
2020-11-30 12:33:15.526 782-1085/? D/com.android.server.am.ExtraActivityManagerService:
MIUILOG- Permission Denied Activity :
Intent act=android.intent.action.SEND typ=text/plain flg=0xb080001
cmp=org.telegram.messenger/org.telegram.ui.LaunchActivity clip=MY_TEXT_HERE ....
当我只是尝试发送 ACTION_VIEW 意图时也会发生同样的情况:
fun Fragment.showBrowser(link: String)
val intent = Intent(Intent.ACTION_VIEW).apply data = Uri.parse(link)
startActivity(intent)
D/com.android.server.am.ExtraActivityManagerService:
MIUILOG- Permission Denied Activity :
Intent act=android.intent.action.VIEW dat=LINK... flg=0x3000000
cmp=com.android.chrome/com.google.android.apps.chrome.IntentDispatcher
我搜索了类似的问题,但它们都是关于从后台启动活动(例如广播接收器),而我的情况并非如此。 提前感谢您的帮助
【问题讨论】:
对于动作视图,您至少应该为应该查看的文件提供一个 uri。还有一种哑剧类型。 尝试使用其他 mime 类型等发送操作。 【参考方案1】:在 MIUI 上,您的应用必须在应用详细设置中接受“在后台运行时显示弹出窗口”权限。 该权限将允许您在后台启动活动
【讨论】:
以上是关于MIUI - 尝试启动 ACTION_SEND / ACTION_VIEW 意图时权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Gmail 5.0 应用程序在收到 ACTION_SEND 意图时失败并显示“附件的权限被拒绝”
如何在Intent ACTION_SEND中将超链接传递给Gmail?