降级到Android SDK版本22

时间:2017-07-24 17:59:45

标签: android permissions sdk

我正在尝试减少我的Android SDK版本从25到22.原因是当我运行程序时,Android会询问用户是否可以记录它们。这并不理想,因为用户会害怕使用它。

  • 我已尝试麦克风权限,但我已阅读此权限因其为权限组而无效。

我已经读过,使用SDK 22将允许用户在应用安装时同意 Record_Audio 。 这里的问题是,当我这样做时会出现几个错误,包括:

Error:(4) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.

此错误出现在构建文件debug / values-v23 / values-v23.xml和v24中。

我已将compileSdkVersion降级为22,将目标sdk版本降级为22.0.1。安装22.0.1构建工具并将com.android.tools.build:gradle降级到2.2.3。到目前为止,我所尝试的一切仍然导致了这些错误,任何帮助都将受到赞赏。

我也在问这个问题,发现是否有办法允许应用使用麦克风而不需要Record_Audio。此外,如果有一种方法可以在使用不同的语言时提出此许可,那也是更可取的。

2 个答案:

答案 0 :(得分:0)

更改操作系统版本(目标API)时,需要更改支持库的版本以匹配API版本。对于以API 22为目标的实例,支持库也必须是版本22。

答案 1 :(得分:0)

您不应该降低目标SDK版本以避免需要在运行时请求权限。

由于以下几个原因,这是个坏主意:

  • 首先,这是一个用户敌对的决定。 Marshmallow(API 23)中添加了运行时权限,以便用户更好地控制应用程序如何使用其设备和访问个人信息。它可以帮助用户了解您如何使用这些权限以及您需要它们的原因。

  • 其次,通过使用较低目标SDK版本,您可以锁定自Marshmallow以来引入的任何新的Android API和平台功能。 Marshmallow于2015年发布,因此您已经落后2年,这一差距将继续增长。

  • 最后,无论您定位的API级别如何,任何运行Marshmallow或更新版本的用户都可以撤消此应用程序的权限。

话虽这么说,如果你降低目标/编译SDK版本,你还需要更改支持库版本。较新版本的支持库使用较新的API,因此与较旧的SDK版本不兼容。