Android &引用;呼叫需要用户可能拒绝的权限;需要实现,导入的代码中除外

Android &引用;呼叫需要用户可能拒绝的权限;需要实现,导入的代码中除外,android,android-permissions,locationmanager,Android,Android Permissions,Locationmanager,我使用LocationManager在Android中编程。我构建了一个简单的应用程序,只显示当前位置。我得到了标题的错误 现在,这个问题已经发布了好几次,但在有人将这个问题标记为重复之前,请承认它不是,我将解释原因 所有其他问题都解释说,这个问题是因为Android 6现在需要在运行时明确请求许可。所以我做到了,我解决了我的问题。(好吧,它几乎开始工作了) 为什么我要花这么多时间来解决它?这是因为我有另一个版本的程序,在没有任何明确的权限请求的情况下运行没有问题 另一个版本是的,是在Andro

我使用LocationManager在Android中编程。我构建了一个简单的应用程序,只显示当前位置。我得到了标题的错误

现在,这个问题已经发布了好几次,但在有人将这个问题标记为重复之前,请承认它不是,我将解释原因

所有其他问题都解释说,这个问题是因为Android 6现在需要在运行时明确请求许可。所以我做到了,我解决了我的问题。(好吧,它几乎开始工作了)

为什么我要花这么多时间来解决它?这是因为我有另一个版本的程序,在没有任何明确的权限请求的情况下运行没有问题

另一个版本是的,是在Android 23之前构建的,我想,它是在eclipse中构建的,我刚刚下载了这个项目,并将它导入到Android Studio中,在build.gradle中更改平台以使其成功运行。所以我认为它已经被转换成安卓6了

因此,导入的程序在没有任何明确的许可请求的情况下工作,但我的程序必须具有此功能。为什么会这样


我的第二个问题是,编辑器在LocationManager函数中明确地用红色下划线,声明它们需要明确的权限请求。(在另一个导入的程序中,这种情况没有发生)但是,即使我请求了许可,即使程序成功运行,它仍然用红色在它们下面划线。为什么?

你想要安卓6+。你来了,有了新问题。这一次,它被称为运行时权限(runtime permissions)。是的,但我的问题更多的是:如果一个应用程序是为一个较低的版本构建的,然后导入到一个Studio,并且gradle修改为API级别23,它仍然不是Android 6?一旦为较低版本编程,始终是该版本(但将在安卓6机器上运行,没有问题)?“转换”仅更新targetSdkVersion。它不会通过添加必要的修改来修改代码。