안드로이드 6.0 (마시멜로) 이후 버전부터 유저권한설정 필요
1. AndroidManifest.xml 에 권한 부여
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lee.woosuk">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<application
..생략..
권한 목록
CALENDAR | |
CAMERA | |
CONTACTS | |
LOCATION | |
MICROPHONE | |
PHONE | |
SENSORS | |
SMS | |
STORAGE |
앱이 실행되면 권한창을 띄워주고, 권한을 허가하지 않으면 앱 종료 코드.
public class MainActivity extends AppCompatActivity {
String[] permission_list = {
Manifest.permission.INTERNET,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkPermission();
}
public void checkPermission(){
//현재 안드로이드 버전이 6.0미만이면 메서드를 종료한다.
//안드로이드6.0 (마시멜로) 이후 버전부터 유저 권한설정 필요
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
return;
for(String permission : permission_list){
//권한 허용 여부를 확인한다.
int chk = checkCallingOrSelfPermission(permission);
if(chk == PackageManager.PERMISSION_DENIED){
//권한 허용을여부를 확인하는 창을 띄운다
requestPermissions(permission_list,0);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==0)
{
for(int i=0; i<grantResults.length; i++)
{
//허용됬다면
if(grantResults[i]==PackageManager.PERMISSION_GRANTED){
}
else {
//권한을 하나라도 허용하지 않는다면 앱 종료
Toast.makeText(getApplicationContext(),"앱권한설정하세요",Toast.LENGTH_LONG).show();
finish();
}
}
}
}
}
'Android' 카테고리의 다른 글
[Android] 안드로이드 Intent(인텐트) / 화면(액티비티) 전환 / 값 전달 (0) | 2020.12.30 |
---|---|
[Android] 안드로이드 뒤로가기 이벤트/ 뒤로가기 두번 눌러 종료 (0) | 2020.12.30 |
[Android] 안드로이드 커스텀 버튼 xml Select Event - 버튼의 눌림 효과 (0) | 2020.12.28 |
[Android] 안드로이드 스튜디오 4.1.1 버전에서 버튼 배경(Background) 색상 변경 안되는 문제 (8) | 2020.12.28 |
[Android] 안드로이드 토스트 메시지(Toast Message) (0) | 2020.12.28 |