iPad/iPad2の判定

iPhone/iPadアプリの良くあるリジェクト理由として、 「利用できない機能を表示している」というものがある。 カメラの付いていない機種にカメラボタンを付けたりするとそれだけでリジェクトされてしまう。 これを避けるためには、当然ながらアプリを実行してくれているユーザ端末が、 どの機種なのかを判定しなければならない。

この方法について。 今回作っているアプリではカメラの有無くらいしか問題にはならないので、 カメラをexecできるかどうかで判定している。

こんなかんじ。

UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.navigationBarHidden = YES;
imagePicker.toolbarHidden = YES;

UIImagePickerControllerSourceType source = UIImagePickerControllerSourceTypeCamera;
if ([UIImagePickerController isSourceTypeAvailable:source]){
    NSLog(@"has camera = iPad2");
    imagePicker.sourceType = source;  
}
else{
    NSLog(@"no camera = iPad1");
}

iPhone/iPod Touchもこれで区別することは可能なはず。

サンプルプロジェクト

Written on July 10, 2011