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?

使应用程序支持 action_send 仅用于自定义文件扩展名

k30pro怎么刷miui14

MIUI 状态栏主题的问题

联想手机怎么刷小米系统