1

내 코드는 "호출 할 수있다 권한이 필요합니다 .."오류가 안드로이드 스튜디오에서

private void continueCall() { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
     startActivity(callIntent); 
} 

위는 필요 내가

private void call() { 
    if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
     continueCall(); 
    } else { 
     requestCallPermission(); 
    } 
} 

로 확인하신 후 실행시에 사용자 부여 권한 CALL_PHONE 여부 여전히 안드로이드 스튜디오 오류 을 보여주는 "전화가 필요한 권한이 필요합니다 ..."

이 오류를 제거하는 방법? 아니면 적어도 그것을 억제하십시오.

+0

노란색 전구를 클릭하여 표시하지 않음 –

+0

여기를보세요 https://github.com/tananaev/traccar-client-android/issues/187 –

답변

3

방법 continueCall()는 여러 위치에서 호출 할 수 있습니다. 이 call()

의 권한 확인이 보장되지 않습니다 그래서 그래서 당신은 단지 추가하여 오류를 억제 할 수

@SuppressWarnings("MissingPermission")

0

나는 당신이 CALL_PRIVILEGED 허가를 필요가 있다고 생각 :

CALL_PRIVILEGED

추가 된 API 레벨을 1

문자열 CALL_PRIVILEGED 호출하는 응용 프로그램을 할 수 있습니다 통하지 않고 가 비상 번호를 포함한 전화 번호, 다이얼러 사용자는 인터페이스를 사용하여 사용자가 걸려 오는 전화를 확인합니다.

타사 응용 프로그램에서 사용하지 마십시오.

상수 값 : "android.permission.CALL_PRIVILEGED은"

1

차단할 경우 내부

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
startActivity(callIntent); 

을 둘 필요

private void call() { 
if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED) { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:" + phoneNoToCall)); 
     startActivity(callIntent); 
    } else { 
     requestCallPermission(); 
    } 
} 
+0

감사합니다. 당신의 대답은 당신만큼 아름답습니다. –