String[] permissions = new String[] {
android.Manifest.permission.INTERNET,
Manifest.permission.ACCESS_FINE_LOCATION
};
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
for(String permission : permissions){
int result = PermissionChecker.checkSelfPermission(this, permission);
if(result == PermissionChecker.PERMISSION_GRANTED){
//권한 있는경우
}else {
if(shouldShowRequestPermissionRationale(permission)){
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("권한이 필요합니다 ;ㅅ;");
};
doRequestPermission();
}
}
}
super.onCreate(savedInstanceState);
}
public abstract static class PermissionsUtils{
int code_2 = 2;
public static boolean check(@NonNull Context context, @NonNull String permission){
return ActivityCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
}
private static int code = 1;
}
// 권한 획득하는 동작 부분
public void doRequestPermission(){
String[] permissions = new String[]{
android.Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.INTERNET
};
ArrayList<String> notGrantPermissions = new ArrayList<>();
for(String perm : permissions){
// Log.d("perm", perm);
if (!PermissionsUtils.check(this, perm)) {
notGrantPermissions.add(perm);
}
ActivityCompat.requestPermissions(this,notGrantPermissions.toArray(new String[]{}),PermissionsUtils.code);
}
}
}
Caused by: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
에러 내용이 이러한데
어디가 잘못된건지 ㅠㅠ 모르겠습니다..
권한주기는 다 끝났는데 말이죠 ㅠㅠ