이제는 접근권한이 필요한 안드로이드 앱을 개발하려면 유저가 runtime 에서 permission을 허용하도록 코드를 작성해야 한다.
아래는 버튼을 클릭했을 때, 디바이스에 해당 권한이 있는지 확인해서 권한이 없으면 권한을 허용하도록 안내하는 창을 뛰워본다.
public class MainActivity extends AppCompatActivity {
/ 먼저 MainActivity Scope에서 상수 지정해주기 (상수 값은 100이든 1이든 상관없음)
public static final int MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE = 100;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button exportButton = findViewById(R.id.exportButton);
exportButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Permission이 허용되지 않음
// 관련 설명 추가해주기
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
// asynchronously하게 설명을 보여줌
} else {
// Permission 요청
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_WRITE_EXTERNAL_STORAGE);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS 상수가 여기서 활용됨
}
} else {
// Permission 이 이미 허용된 경우
}
// 내가 원하는 다음 동작은 여기에
exportDB();
}
});
}
'Code Snippets > Java' 카테고리의 다른 글
[Android 개발] Sqlite DB를 csv로 내보내기 (1) | 2021.08.05 |
---|