2012-06-15 58 views
3

中授予权限我们有一个AutoCompleteTextView,它可以方便地从用户联系人数据中读取。但是有些用户抱怨应用程序在安装时执行的“READ_CONTACT”权限。有什么方法可以让用户选择授予此权限并使用此功能,或拒绝并禁用此功能?如果在运行时不可能,也许还有其他方法?构建两个应用程序,其中一个具有该许可,另一个不具有该选项!让用户选择在android

回答

3

有没有什么办法让用户选择授予此权限并使用此功能,或拒绝它并丢失该功能?

不幸的是,没有。

如果在运行时不可能,也许有其他方法吗?构建两个应用程序,其中一个具有该许可,另一个不具有该选项!

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

+0

@ user370305:该插件请求预定义的某些权限(例如,“READ_CONTACTS”)。在运行时请求权限是不可能的 - 这会导致Vista综合症(“CPU想要执行指令:允许?拒绝?”)。但是,主应用程序不需要请求插件请求的许可,这就解决了OP的用户关心的问题。 – CommonsWare

+0

雅..我在你的项目中得到它。谢谢.. +1示例项目。 – user370305

0

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

+0

正如我所说:Nuilding两个应用程序,用户必须下载不是一个选项... –

+0

好吧,比答案是否定的。除此之外,我的建议并不要求怀疑用户下载一个单独的应用程序。您也可以将扩展应用程序托管在单独的服务器上,并提示用户自动安装它,如果他想要的话。用户所要做的就是在安装屏幕上按确定。 –

+0

???非常羡慕! QUOTE:“我的建议不需要怀疑用户下载单独的应用程序”vs“您也可以将扩展应用程序托管在单独的服务器上”。用户如何获取这个应用程序,如果不是下载?? –

相关问题