마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

마시멜로우 Acitivity가 아닌 곳에서 RequestPermission, AlertDialog 사용방법..

0 추천

현재 커스텀 리스트뷰 안에 있는 아이콘을 클릭하면 전화가 걸리게 사용하고 싶습니다.

다만 아래 onClick코드가 Adapter안에 getView안에 있어서 Activity가 아닌데 Activity가 아닌 곳에서 RequestPermission 과 AlertDialog를 사용 하는 방법을 알고싶습니다.

RequestPermission부분에서 저렇게 코드를 사용하면 앱이 다시 튕겨버리더라구요.. 

위에 두가지 방법 좀 알려주세요..

@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        // Tag를 이용하여 Data를 가져옵니다.
        ListView_User clickItem = (ListView_User) v.getTag();

        switch (v.getId()) {
            case R.id.btn_send:
                Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + clickItem.getUserPhoneNumber()));
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                if(Build.VERSION.SDK_INT == Build.VERSION_CODES.M) {
                    int permissionResult = mContext.checkSelfPermission(Manifest.permission.CALL_PHONE);

                    if(permissionResult == PackageManager.PERMISSION_DENIED)
                    {

                        if(clickItem.shouldShowRequestPermissionRationale/* << 이건 맞는건가요*/(Manifest.permission.CALL_PHONE)) {
                            AlertDialog.Builder dialog = new AlertDialog.Builder(/*뭘 넣어야 하죠?*/);
                        }

                    }
                }
                mContext.startActivity(intent);

 

익명사용자 님이 2017년 7월 11일 질문
2017년 7월 11일 수정

1개의 답변

0 추천
실제로 코드를 까보지는 않았지만 시스템에서 띄워주는 권한 요청 다이얼로그가

사실은 Activity로 동작하고 설정에 대한 응답을 onActivityResult로 내부적으로 받는거 같습니다.

onActivityResult 자체가 Activity나 Fragment에서 동작하기 때문에 화면없이는 힘들거 같습니다.

그러나 권한 체크정도는 화면 없이도 가능합니다.
Development Guy (70,570 포인트) 님이 2017년 7월 11일 답변
...