본문 바로가기
Android/Technic

Permission이 아닌 setting을 건들일때

by 등촌동 꼬북이 2021. 7. 24.

안드로이드 개발하다보면 권한을 건들어야할 때가 있다..

 

근데 앱 위에 다른 앱 띄우기 관련은 권한이 아니라 setting 이여서

 

permissionBtn.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          startActivityForResult(new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName())), OVERLAY_PERMISSION_REQUEST_CODE);
      }
});

 

이렇게 requestcode를 임의로 아무거나 세팅해서 해서 startActivityForResult 해야하고 처리는 아래와 같이 해야한다.

 

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == OVERLAY_PERMISSION_REQUEST_CODE) {
            if (Settings.canDrawOverlays(this)) {
                Toast.makeText(getApplicationContext(), "Permission granted!", Toast.LENGTH_LONG).show();
                startActivity(new Intent(PermisionActivity.this, MainActivity.class));
                finish();
            } else {
                showContextInDialog();
            }
        }
    }

 

첨엔 앱 위에 다른 앱 띄우기가 권한인줄 알고 onRequestPermissionsResult으로 작업했는데 아니였다는...

 

머쓱타드~

댓글