내 매니페스트 파일에 권한을 추가하면 아래 xml이 작동합니다.
<permission android:name="android.permission.ACCESS_FINE_LOCATION" />
그러나이 xml은 작동하지 않습니다.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
어느 것을 사용해야합니까? 첫 번째라면 왜 작동하지 않을까요? 어떻게 고칠 수 있습니까?
또한 Android 6.0 런타임 권한 관련 예외가 발생합니다.
java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
권한을 확인하기 위해 문자열 배열에 권한을 추가하려고하면 Android Studio Manifest.permission
에서 아래 코드에서 해결할 수 없다고 알려줍니다 .
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
왜 이럴까요? 어떻게 고칠 수 있습니까?
답변
첫 번째 부분에서는 <uses-permission>
Android Devlopers 사이트에 따라 사용해야합니다 . 태그가 아닌 태그 바로 아래에서 권한을 선언했는지 확인 <manifest>
하세요 <application>
. 전체 매니페스트 파일을 보지 않고는 문제가 무엇인지 알기가 어렵습니다. 매니페스트에서 권한을 선언하는 방법에 대한 자세한 내용 은 위에 게시 한 링크를 확인 하세요.
런타임 권한 문제와 관련하여 :
사용 권한으로 해결할 수 없습니다 ..
new String [] {Manifest.permission.ACCESS_FINE_LOCATION}
왜?
android.Manifest
대신을 사용하고 있는지 확인하십시오 my.app.package.Manifest
. 대부분의 경우 Android Studio는 전자 대신 후자를 기본으로합니다.
따라서 새 코드 줄은 다음과 같습니다.
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
편집 : 내 대답의 형식을 변경했습니다.
편집 2 : 가져 오기에주의하십시오 android.Manifest
. 를 가져 오는 경우에도 문제 가 발생할 수 있습니다 my.app.package.Manifest
. 그 외에는 import android.Manifest
이 문제를 해결하는 또 다른 유효한 방법이 있습니다.
답변
이것을 변경
Manifest.permission.ACCESS_FINE_LOCATION
이것으로
android.Manifest.permission.ACCESS_FINE_LOCATION
답변
이 시도! ACCESS_FINE_LOCATION은 다음 패키지에서 사용할 수 있으므로 추가하십시오.
import android.Manifest;
답변
나는 비슷한 문제가 있었다.
ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED
symbol을 확인할 수 없습니다 READ_CONTACTS
.
그러나 사용시;
import android.Manifest;
인식하기 시작했습니다 READ_CONTACT
답변
동적 권한 및 ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION 과 같은 권한에 대해 작업하는 경우이 경우 “PERMISSION_NAME 메소드를 해결할 수 없습니다”라는 오류가 발생 하는 경우 권한 이름으로 코드를 작성한 다음 프로젝트 를 다시 빌드 하면 매니페스트 (Manifest.permission) 파일 이 다시 생성 됩니다.
답변
이미 hnilsen 에서 언급했듯이 매니페스트 파일에 이미 uses.permissions 설정이 올바르게 설정되어 있으면 다음 줄을 바꿉니다.
Manifest.permission.ACCESS_FINE_LOCATION
이것에 의해 :
android.Manifest.permission.ACCESS_FINE_LOCATION
이것은 당신의 문제를 해결할 수 있습니다.
답변
if (Build.VERSION.SDK_INT >= 23) {
if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
|| checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
mapView.setMyLocationEnabled(true);
}
}
else
{
mapView.setMyLocationEnabled(true);
}