에서 아무것도하지 않는다 : 흐름 선에 도달하면ActivityCompat.requestPermissions 내가 <code>PermissionsService</code>라고 요청 권한에 대한 클래스를 만들어 모든
이public void getPermission(final String androidManifestPermission, final int mPermissionCode, final String rational) {
if (ContextCompat.checkSelfPermission(mactivity, androidManifestPermission) != PackageManager.PERMISSION_GRANTED) {
Snackbar.make(mLayout, rational, Snackbar.LENGTH_LONG).setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View view) {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
}
}).show();
} else {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode); <------ nothing happens when the flow reaches here
}
}
public static enum PERMISSIONS {
CAMERA_PERMISSION,
GPS_PERMISSION
}
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
아무것도 전혀 발생하지 않습니다.
의 값은 MainActivity
이고, androidManifestPermission
의 값은 "android.permission.ACCESS_FINE_LOCATION"
입니다.
문제점을 이해할 수 없습니다.
나는 관련이 있을지도 모른다 무언가를 아주주의했다.
requestPermissions 함수는 첫 번째 인수로 활동을 취합니다. 그러나 실행되는 콜백 onRequestPermissionsResult
은 ActivityCompat 인터페이스에 정의됩니다. OnRequestPermissionsResultCallback
어떻게 될 수 있습니까? 함수 requestPermissions
은 onRequestPermissionsResult
의 호출을 Activity
(첫 번째 인수)에 어떻게 찾을 수 있습니까?
아마도 내 문제와 관련이 있습니까?
내 액티비티를 OnRequestPermissionsResultCallback
과정으로 구현하려고 시도했습니다. @Override
onRequestPermissionsResult
이라는 함수에 주석을 달았을 때 컴파일러는 onRequestPermissionsResult
(인터페이스 OnRequestPermissionsResultCallback
에서) 함수가 수퍼 클래스를 재정의하지 않는다고 불평합니다.
내 관심사는 OS에서 사용자의 허가를 요청할 수 없다는 것입니다.
문제가 무엇인지 아는 사람이 있습니까?
runOnUIThread 내가 지금처럼 UIThread에 requestPermissions
를 실행하려고
(작동하지 않았다) : 이미 권한이있는 경우
mactivity.runOnUiThread(new Runnable() {
@Override
public void run() {
ActivityCompat.requestPermissions(mactivity, new String[]{androidManifestPermission}, mPermissionCode);
}
});
안녕. 나는 활동 내에서 onRequestPermissionsResult를 오버라이드하려고 시도했다. 그것은'메소드가 슈퍼 클래스의 메소드를 무효화하지 않는다 '는 것을 알려줍니다. –
나는 가지고있는 문제점을 알고 있습니다. 고마워;) –
도움이 되었다면, 그것을 수락 된 것으로 표시하는 것을 잊지 마십시오. –