我正在尝试将我的应用程序从API 22移植到API26。几个API调用失败(例如WRITE_EXTERNAL_STORAGE等)。我相信这是由于新的运行时权限模型所致,其中即使在清单中也没有授予权限。
所以我尝试做正确的事情,即使用checkSelfPermission()并在被拒绝时请求权限。
我的问题是,在API 23之前,checkSelfPermission不可用,而我的minSdkVersion低于该水平,因此Android Studio将其标记为错误。
我现在陷入困境:如果我将minSdkVersion提高到23,我将为许多现有客户破坏该应用程序。如果我将我的targetSdkVersion降低到API 23以下以避免该问题,Google Play将不会接受。
帮助!
答案 0 :(得分:1)
您应该仅检查API> = 23的权限。对于API <21,将使用install-time requests
答案 1 :(得分:0)
在v4支持库中调用ContextCompat.checkSelfPermission()
(请参阅this question)。这是一个“兼容性层”,因此单个功能将在所有版本的Android上运行。