2010-03-15 4 views
2

사용자가 어떤 장치를 실행하고 있는지 감지하는 적절한 방법입니까?기기 모델 (iPhone/iPod Touch)을 감지하는 적절한 방법은 무엇입니까?

NSString *currentModel = [[UIDevice currentDevice] model]; 
if ([currentModel isEqualToString:@"iPhone"]) { 
    // The user is running on iPhone so allow Call, Camera, etc. 
} else { 
    // The user is running on a different device (iPod/iPad/iPhone Simulator) disallow Call. 
} 
+0

이것은이 질문과 중복되는 것으로 보입니다. http://stackoverflow.com/questions/688001/how-to-tell-if-your-code-is-running-on-an-iphone-or-an -iphone3g –

답변

7

일반적인 해결책은 아니지만 Apple은 특정 기능이 지원되는지 여부를 확인하기 위해 API 호출을 제공하는 경우가 많습니다. 예를 들면 수 : UIImagePickerController에서

  • +isSourceTypeAvailable:+availableMediaTypesForSourceType:을 카메라가 현재의 장치를 사용할 수 있는지 확인할 수 있도록.

  • +canSendMail 에서 장치가 메일을 보내도록 구성되어 있는지 확인하십시오.

  • -canOpenURLUIApplication 클래스는 URL을 열 수 있는지 확인합니다. 이러한 API 호출이 사용 목적에 사용할 수있는 경우

    if (![[UIApplication sharedApplication] canOpenURL: 
               [NSURL URLWithString:@"tel://"]]) 
        //We cannot make a call - hide call button here 
    

내가보다는 하드 코딩 된 문자열 식별자에 의존을 사용합니다 : 전화를 걸 수 있습니다 예를 들어 그것을 확인하는 데 사용할 수 있습니다.

+0

전화에 대해서는 어떻게 작동합니까? 나는 전화 번호를 사용하여 숫자를 호출 할 수 있다는 것을 나타내는 아이콘과 함께 다이얼한다. 사용자가 직접 전화를 걸 수없는 경우이 아이콘을 표시하지 않습니다. iPad 및 iPod Touch의 경우는 어느 것입니까? – Mark

+0

업데이트 된 답변보기 – Vladimir

+0

대단히 감사합니다! 블라디미르! 나는 대답 번호를 늘리고 답변으로 표시했다. – Mark

1

내가 그 정도 일반화 싶어 확실하지 않다 (카메라로 즉, 결국이있을 수 있습니다 아이팟을, 나는 아이폰이 항상 "아이폰"호출 될 것을 알고하지 않습니다) , 그렇습니다. 이것이 받아 들여지는 방법입니다.

+0

답변보다 댓글에 더 흡사하지 않습니까? – Till

+0

그들은 사용자가 어떤 장치를 실행 중인지 결정하는 방법인지 묻습니다. "예"는 어떻게 코멘트입니까? –

관련 문제