반응형
Permissions.class
public class Permissions {
public static boolean hasPermissions(Context context, String... permissions) {
if (context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
}
사용
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
//사용하려는 퍼미션을 배열에 담아둔다.
int PERMISSION_ALL = 1000;
String[] PERMISSIONS = {
Manifest.permission.CAMERA,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.READ_EXTERNAL_STORAGE,
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//만들어놓은 util에서 퍼미션이있는지 물어본다.
if(!Permissions.hasPermissions(this, PERMISSIONS)){
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (PERMISSION_ALL == requestCode){
for (int i : grantResults){
//허용
if(i == PackageManager.PERMISSION_GRANTED){
Log.i(TAG,"## PERMISSION_GRANTED");
}
//거부
else {
Log.i(TAG,"## PERMISSION_DEN");
}
}
}
}
}
반응형
'AOS' 카테고리의 다른 글
[안드로이드]오늘 하루 안보기 (0) | 2019.12.21 |
---|---|
[안드로이드] 위아래가 사라지는 레이아웃 (0) | 2019.12.21 |
[안드로이드]구글인앱결제(정기구독) (0) | 2019.12.20 |
[안드로이드]커스텀 위젯만들기 (0) | 2019.12.20 |
[안드로이드] 실행중 시스템 언어 변경하기 (0) | 2019.12.20 |