public class PermissionsActivity extends Activity{
//Tag
private static final String TAG = "PermissionsActivity";
private static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.SEND_SMS,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(TAG, "+++ ON CREATE +++");
setContentView(R.layout.permissionsactivity);
//권한 설정
if (ContextCompat.checkSelfPermission(PermissionsActivity.this,
Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
// 권한 획득에 대한 설명 보여주기
if (ActivityCompat.shouldShowRequestPermissionRationale(PermissionsActivity.this, Manifest.permission.SEND_SMS)) {
ActivityCompat.requestPermissions(PermissionsActivity.this,
PERMISSIONS_STORAGE,
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
// 사용자에게 권한 획득에 대한 설명을 보여준 후 권한 요청을 수행
} else {
// 권한 획득의 필요성을 설명할 필요가 없을 때는 아래 코드를
//수행해서 권한 획득 여부를 요청한다.
ActivityCompat.requestPermissions(PermissionsActivity.this,
PERMISSIONS_STORAGE,
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
}
}
}
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
//권한 획득이 거부되면 결과 배열은 비어있게 됨
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//권한 획득이 허용되면 수행해야 할 작업이 표시됨
//일반적으로 작업을 처리할 메서드를 호출
Intent languageintent = new Intent(PermissionsActivity.this, LanguageActivity.class);
startActivity(languageintent);
finish();
} else {
Toast.makeText(this, "You must to agree to the permissions", Toast.LENGTH_LONG).show();
finish();
//권한 획득이 거부되면 수행해야 할 적업이 표시됨
//일반적으로 작업을 처리할 메서드를 호출
}
return;
}
}
}
}
위와 같이 예제 소스를 돌리고 있습니다.
권한 4가지 다 권한을 획득하지 않으면 앱이 종료되게 만들고 싶습니다.
4가지 권한을 다 받았는지 확인하는 방법도 알고 싶습니다..