android 6.0이 되면서 부터 퍼미션을 사용자가 부여 할수 있게 되었다.
그래서 이번에 업데이트를 하면서 기존에 있던 앱들의 권한을 변경하게 되면서 알게된 라이브러리를 적어둔다.
예로 카메라 퍼미션 체크를 해본다.
아래 소스는 카메라로 바코드를 읽기 위해서 사용한 코드의 일부이고, 바코드 라이브러리는 zxing을 사용했다.
https://github.com/ParkSangGwon/TedPermission
위 사이트로 가면 사용법이 나와 있으니 참고 하면 되고,
사용법을 적자면...
PermissionListener permissionlistener = new PermissionListener() {
@Override
public void onPermissionGranted() {
IntentIntegrator integrator = new IntentIntegrator(ProductListActivity.this);
integrator.setCaptureActivity(BarcodeScannerActivity.class);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
integrator.setOrientationLocked(false);
integrator.setBeepEnabled(true);
integrator.initiateScan();
}
@Override
public void onPermissionDenied(ArrayList<String> deniedPermissions) {
// Toast.makeText(ProductListActivity.this, "Permission Denied\n" + deniedPermissions.toString(), Toast.LENGTH_SHORT).show();
}
};
우선 리스너를 위와 같이 등록한다.
버튼의 onClickListener에
new TedPermission(this)
.setPermissionListener(permissionlistener)
.setDeniedMessage("바코드 등록 기능을 사용하기 위해서는 카메라를 사용할수 있는 권한이 필요 합니다. 설정으로 이동후 카메라 권한을 활성화 시켜 주세요.")
.setPermissions(Manifest.permission.CAMERA)
.check();
이렇게 해주면 된다.
자세한 설명은 만드신 분께서 블로그(http://gun0912.tistory.com/55)에 친절하게 설명을 해놓으셔서 블로그에 방문해서 보면 될거 같다.