1

是否有一種方法可以實現針對API 14及更高版本的應用程序的運行時權限?我的應用程序具有相機功能,但不是必需的。我如何在清單中指定這個?現在我有Android M之前的運行時權限(api 14及以上)

<uses-permission android:name="android.permission.CAMERA"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.RECORD_AUDIO"/> 

    <uses-feature android:name="android.hardware.camera"/> 
    <uses-feature android:name="android.hardware.camera2.autofocus"/> 

有沒有更好的方法來做到這一點?

回答

1

有沒有一種方法來實現運行時權限的應用程序,目標API 14和以上?

如果您的意思是「在安裝時隱藏用戶的權限,只在運行時詢問他們」,那麼答案是否定的。

有沒有更好的方法來做到這一點?

這是實現它的唯一方法,並讓所有內容都放在一個應用中。

您可以使用單獨的APK將插件實現爲插件。您可以使用安全IPC從主應用程序與插件通信(例如,自定義signature權限或您自己的手動簽名檢查)。該插件的清單中將包含CAMERA及相關權限;主要的應用程序不會。

從好的一面來說,用戶不必爲主應用程序同意這些權限,那些從不安裝插件永不的用戶不得不擔心權限。

然而,這確實增加了複雜性:

  • 用戶必須安裝主應用程序和插件,以獲得全方位的功能,你目前有在短短的一個應用程序

  • 你必須使用PackageManager等來確定插件是否存在並且可以使用

  • 您必須處理一些人將安裝插件,而沒有主應用程序和奇蹟wha t正在進行

+0

感謝您的洞察力。但我的片段似乎不對。這導致谷歌播放匹配我的應用程序與0設備。請參閱http://stackoverflow.com/questions/33525177/why-is-my-list-of-supported-devices-empty-on-google-playstore – learner