[Intent] 암시적 Intent 런타임에 대한 보호 점검: 카메라 호출 실패

684 단어 05@AndroidApp
카메라를 켜고 사진을 보내는 등 은밀한 Intent와 같이 모든 안드로이드 장치에서 정상적으로 작동할 수 있는 것은 아니다.예를 들어 카메라의 스텔스 Intent를 켜면 시스템 카메라 적용이 꺼지거나 카메라 적용이 존재하지 않거나 카메라 적용의 일부 권한이 꺼지는 등 이 스텔스 Intent가 정상적으로 작동하지 못할 수도 있다.스텔스 Intent에서 적합한 호출 구성 요소를 찾지 못하면, 시스템은ActivityNotFoundException의 이상을 던집니다. 만약 우리의 응용 프로그램이 이 이상을 처리하지 않았다면, 응용 프로그램은 Crash가 발생할 것입니다.
이 문제를 예방하는 가장 좋은 해결 방안은 이 은밀한 Intent를 보내기 전에 ResolveActivity를 호출하여 검사하는 것입니다. 이 API에 대한 설명과 사용법은 다음과 같습니다.
이 API의 사용 예는 다음과 같습니다.
Intent intent = new Intent(Intent.ACTION_XXX);
ComponentName componentName = intent.resolveActivity(getPackageManager());
if(componentName != null) {
    String className = componentName.getClassName();
}

좋은 웹페이지 즐겨찾기