2012-06-15 57 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「您也可以將擴展應用程序託管在單獨的服務器上」。用戶如何獲取這個應用程序,如果不是下載?? –

相關問題