可选权限,以便应用可以在所有设备上显示并在某些设备上启用可选功能?

Cha*_*ltz 39 android android-permissions

Android中的许多功能都需要在清单中设置使用权限.然后,这些值确定哪些设备将在Market中看到它们.但是,如果该功能是可选的,应该怎么做...如果它可以在许多设备上运行,但只需要几个许可?

例如:让我们说一个具有多种功能和大量内容的应用程序 - 它提供了一个按钮来呼叫公司.这是一个很好的方便功能,而不是写下数字或将其复制并粘贴到手机应用程序中.然而,这并不重要.

如果使用该功能和电话的权限被添加到应用程序,那么这一切都很好的手机 - 但没有平板电脑会在市场上看到的应用程序.

这个问题的一般解决方案是什么?

可以使用不同的权限制作多个应用程序,但是这种方法存在一些问题(额外的开发时间,难以保持维护一致,评论和评级分散在不同的应用程序中,以及是否存在多种不同类型的可选权限而不是不同的每个组合可能需要应用程序).

该应用程序可以以编程方式检查该功能是否可用并根据设备启用或禁用该功能.问题是,如果应用程序没有权限,那么如果它尝试使用该功能它将崩溃 - 如果它确实拥有权限,则某些设备将无法在该应用程序中找到该应用程序.市场.

在某些情况下,可以完全从应用程序中删除不重要的功能以避免该问题.这也不是一个很好的解决方案,因为这些功能在支持它的设备上"很高兴".

是的,我知道Android中是否可以拥有"可选"权限?是一个类似的问题.我希望有更新的信息以及人们发现的其他解决方法,如果有的话...这个问题的解决方案是什么?除了我上面列出的那些之外,有没有其他方法?

Com*_*are 80

这个问题的一般解决方案是什么?

对于该特定问题,请添加<uses-feature android:name="android.hardware.telephony" android:required="false"/>到清单,以指示功能是可选的.然后PackageManager,您可以使用和hasSystemFeature()确定设备是否在运行时具有非必需功能.

  • 因此,使用权限不能是可选的,但在许多情况下,可以添加使用功能,这可以是可选的,这是市场过滤的主要信息来源.优秀!阅读你提供的链接后,这一切都更有意义,谢谢. (3认同)
  • 对于想要了解功能是否可用的人,请遵循以下主题:http://stackoverflow.com/a/5264328/693752 (3认同)