본문 바로가기
프로그래밍

안드로이드앱 권한 자동 요청 라이브러리(Auto Permissions)

by minimax95 2020. 10. 4.

이번 포스팅에서는 안드로이드 앱 개발 시 권한 요청 및 처리를 쉽게 도와주는 AutoPermissions 라이브러리 사용방법에 대해 정리해 보겠습니다.

 

먼저 AutoPermissions 라이브러리 사용을 위해서는 build.gradle(Module:app)을 열고 아래와 같이 dependencies에 implementation을 추가해 줍니다.

 

dependencies {

             ~ 중략 ~

    implementation 'com.github.pedroSG94:AutoPermissions:1.0.3'

}

 

그리고 maven에 url을 아래와 같이 추가해 줍니다.

repositories {

           ~ 중략 ~

    maven { url 'https://jitpack.io' }

}

 

dependencies 추가 후에는 Sync Now를 하여 의존 라이브러리를 적용시켜줍니다.

 

다음은 MainActivity에서 AutoPermissionsListener를 implements에 추가해 주고 AutoPermissions 권한 승인 또는 거부 시 처리해야 할 함수들을 구현해 줍니다.

우클릭 후에 Generate에서 Override Methods와 Implement Methods를 통해서 아래와 같이 함수들을 추가해 줍니다.

 

public class MainActivity extends AppCompatActivity implements AutoPermissionsListener {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
     }

     @Override
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[]     

     grantResults) {
          super.onRequestPermissionsResult(requestCode, permissions, grantResults);
     }

     @Override
     public void onDenied(int i, String[] strings) {

     }

     @Override
     public void onGranted(int i, String[] strings) {

     }
}

 

 

이제 마무리 단계입니다.

 

onCreate( )가 호출될 때 AutoPermissions 승인 처리 요청을 위해 아래와 같이 한 줄을 추가해 줍니다.

AutoPermissions.Companion.loadAllPermissions(activity: this, requestCode: 101);

 

그리고 onRequestPermissionsResult( ) 함수에도 아래와 같이 한 줄 추가해 줍니다.

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
     super.onRequestPermissionsResult(requestCode, permissions, grantResults);

     AutoPermissions.Companion.parsePermissions(this, requestCode, permissions, this);
}

 

마지막으로 onGranted( ) 함수와 onDenied( ) 함수에서 AutoPermissions 승인 또는 거부 결과를 확인할 수 있도록 토스트 메시지를 띄워줍니다.

@Override
public void onGranted(int requestCode, String [] strings) {
     Toast.makeText(this, "permissions granted : " + strings.length, Toast.LENGTH_LONG). show();
}

 

@Override
public void onDenied(int requestCode, String[] strings) {
     Toast.makeText(this, "permissions denied : " + strings.length, Toast.LENGTH_LONG).show()Toast.LENGTH_LONG). show();
}

이제 간편하게 AutoPermissions 라이브러리를 통한 권한 승인 처리를 구현할 수 있게 되었습니다.

AndroidManifest에서 필요한 권한들을 추가해 주고 실행해 보면 최초 실행 시 자동으로 필요 권한 요청을 띄우고 승인 결과를 확인할 수 있습니다.

 

감사합니다.

댓글