AndroidManifest.xml에 아래 코드를 넣어준다.
나는 application태그 위에 넣어주었다.
<!--sd카드 접근 권한 설정-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
안드로이드 6.0이상 부터는 자바 코드에도 권한 설정 코드를 넣어야한다
sd카드에서 읽고 쓰기 작업을 하는 activity 코드에 아래 코드를 넣어줘야한다.
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
private static final int REQUEST_EXTERNAL_STORAGE = 1;
public static void verifyStoragePermissions(Activity activity) {
// Check if we have write permission
int permission = ActivityCompat.checkSelfPermission(
activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
verifyStoragePermissions(MainActivtiy.this);
}
verifyStoragePermissions(Activity이름.this);
그리고 activity 파일 onCreate()메소드에 위 코드를 넣어준다.
다 넣고 실행하면
이 앱에 sd카드 접근 권한을 줄거냐는 팝업창이 뜬다.