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