【问题标题】:Let the user choose to grant permission in android让用户在android中选择授予权限
【发布时间】:2012-06-15 12:11:29
【问题描述】:

我们有一个 AutoCompleteTextView,它可以方便地从用户联系数据中读取。然而,一些用户抱怨应用程序在安装时强制执行的“READ_CONTACT”权限。有没有办法让用户选择授予此权限并使用此功能,或者拒绝它并放弃该功能?如果在运行时不可能,也许还有其他方法?构建两个应用程序,一个有该权限,一个没有权限!

【问题讨论】:

    标签: java android permissions code-access-security


    【解决方案1】:

    有没有办法让用户选择授予此权限并使用此功能,或者拒绝它并放弃该功能?

    很遗憾,没有。

    如果在运行时不可能,也许还有其他方法?构建两个应用程序,一个有该权限,一个没有权限!

    您可以在没有该权限的情况下构建主应用程序,然后创建一个拥有该权限并与主应用程序安全交互的插件。这是一个有点先进的技术。我介绍了in one of my bookshere is the directory with sample projects 演示了主机和插件。就我而言,我使用的是CallLog 而不是ContactsContract,尽管权限(READ_CONTACTS)是相同的。

    【讨论】:

    • @user370305:插件请求某些预定义的权限(例如,READ_CONTACTS)。在运行时请求权限是不可能的——这会导致 Vista 综合症(“CPU 想要执行一条指令:允许?拒绝?”)。但是,主应用程序不必请求插件请求的权限,这解决了OP的用户问题。
    • 是的。我在你的项目中得到了它。谢谢.. +1 示例项目。
    【解决方案2】:

    对此我不太确定,但您可以构建一个需要此权限的单独应用。这个额外的应用程序提供了一个内容提供者。您的主应用现在会检查您的扩展应用是否已安装并从内容提供者那里获取该数据。

    【讨论】:

    • 嗯,答案是否定的。除此之外,我的建议不需要持怀疑态度的用户下载单独的应用程序。您还可以在单​​独的服务器上托管扩展应用程序,并提示用户在需要时自动安装它。用户只需在安装屏幕上按确定即可。
    • ???很奇怪!引用:“我的建议不需要持怀疑态度的用户下载单独的应用程序”与“您也可以在单独的服务器上托管扩展应用程序”。如果不下载,用户应该如何获取这个应用程序??
    • 他只是想帮助@rafael。对于它的价值,他提供从不同服务器下载扩展应用程序的建议一点也不差 - 这可能是一个不错的“应用程序内”后台进程,即无需从市场上下载 2 个应用程序
    • 需要用户启用未知来源
    猜你喜欢
    • 2023-03-14
    • 2017-07-06
    • 2012-12-05
    • 2011-09-07
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    相关资源
    最近更新 更多