我在官方的android博客中引用了这个:
权限更改使用Marshmallow,权限已从中移除 安装时到运行时。这是SDK 23+的强制性更改, 意味着它将影响所有开发人员和所有应用程序目标 Android 6.0。
所以......如果使用Android 6.0(api 23)进行编译但是你的目标是Android 4.4(api 20),那么可以保留旧的权限系统吗?
我的意思是这样做:
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 20
}
我的项目现在的必要条件是维护旧的权限系统并定位sdk版本20(因为我需要维护旧的通知系统,如果你的sdk版本高于20,你必须使用新的通知系统) 。所以......如果我定位sdk版本20,我可以使用Api 23进行编译并维护旧的权限系统吗?
由于
答案 0 :(得分:7)
是的,如果targetSdkVersion
设置为<23,则将使用旧的权限系统(即使在Android 6.0上)。但是,Android 6.0上的用户以后可以从设置手动禁用个人权限。虽然Android 6.0会在用户尝试这样做时发出警告,但无论如何都可以撤销。
现在问题是用户撤销权限后你的应用会崩溃吗?
当我们调用需要撤销权限用户的函数时
targetSdkVersion
小于23的应用程序,没有例外 被抛出相反,它只是什么都不做。对于功能 返回值,它将返回null或0取决于 案件。虽然应用程序不会因调用a而崩溃 功能。它可能仍然会因应用程序的下一步而崩溃 那些返回的价值。