gpt4 book ai didi

android - 在定义之前请求自定义 android 权限

转载 作者:行者123 更新时间:2023-11-29 21:55:32 27 4
gpt4 key购买 nike

我的目标场景:用户在他/她首选的电子邮件应用程序中打开附件。建议我的应用程序打开/查看附件,用户选择我的应用程序,我的应用程序通过 ContentResolver.openInputStream(uri) 打开附件 uri 并从中读取。

这通常效果很好。不过我注意到,现在有几个电子邮件应用程序需要特殊权限,例如:com.fsck.k9.permission.READ_ATTACHMENT、com.android.email.permission.READ_ATTACHMENT、com.motorola.blur.service.email.Permissions .INTERACT等

我认为为市场上的每个电子邮件应用程序添加一个 uses-permission-tag 是一个糟糕的设计。有没有更好的方法可以普遍阅读附件?

此外 - 即使我决定在每次发布时继续向我的应用程序添加使用权限,我也会遇到另一个问题:如果需要权限的应用程序安装在之后我的应用程序,我的应用程序将没有权限,因为在我安装应用程序时,包管理器甚至不知道这样的权限存在。

那么 - 如果我的用户决定切换到我的应用程序已经具有使用权限的新电子邮件应用程序,我真的必须指示他们重新安装我的应用程序吗?仅仅因为我的应用程序首先出现在他们的系统上??

如有任何帮助,我们将不胜感激。谢谢阅读!!

最佳答案

我现在可以从我的应用程序中删除所有这些自定义权限,并且仍然可以阅读附件。

事实证明我做的一切都是正确的,除了一件小事......

...我正在处理阅读两个 Activity 中的附件。第一个 Activity - 我的主要 Activity - 负责收集 Intent 信息并选择/准备一个数据库来存储 future 的 -导入的数据。第二个Activity实际上是读取通过ContentResolver获取的InputStream并导入到数据库中。

事实证明,FLAG_GRANT_READ_URI_PERMISSION 仅向 Intent 的接收者授予权限。当我将附件的 Uri 传递给 second Activity 时,它无法再在那里读取 - 只能通过授予我的应用程序几个自定义Permissions,我不能真正推荐如上所述的解决方案。

我现在的解决方案是读取我的第一个Activity 中的所有数据,将其存储在一个临时文件中并将此文件-Uri 传递给我的第二个Activity 。当然,现在我必须关心复制需要多长时间,可能会显示进度对话框并确定在哪里可以为我的临时文件找到足够的空间,访问原始 Uri 似乎要容易得多。

关于android - 在定义之前请求自定义 android 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333400/

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