プロフィール

pikab1

Author:pikab1
ただのチキンプログラマです。よろしく。


個人で作ったアプリ

AkiyoshiFan AkiyoshiFan ハンター文字 まとめDL

初/中級開発者におすすめ


カテゴリ


Twitter


月別アーカイブ


最新トラックバック


最新コメント


検索フォーム

ブロとも申請フォーム

QRコード

QR

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


AddressBook.frameworkのiOS6対応

iOS6からプライバシー設定が追加されました。

今まで連絡帳に普通にアクセスできましたが、iOS6からはユーザ側に連絡帳のアクセス許可を求めて、許可が貰えればアクセスできるようになりました。

つまり、実装方法によっては、許可を貰った時点で既に連絡帳の取得処理を通過してしまっていて、初回時のみ連絡帳データを保持していない状態になってしまいます。

・もちろん一回アプリのタスクを切れば問題ないです。
・プライバシ設定から「許可」「拒否」の設定を変更するとアプリが再起動されます。

ここから本題ですが、iOS6からそれに対応できるようにメソッドがいくつか追加されています。

Added ABAddressBookCreateWithOptions()
Added ABAddressBookGetAuthorizationStatus()
Added ABAddressBookRequestAccessCompletionHandler
Added ABAddressBookRequestAccessWithCompletion()
Added ABAuthorizationStatus
Added CF_ENUM() (no architecture available)
Added kABAuthorizationStatusAuthorized
Added kABAuthorizationStatusDenied
Added kABAuthorizationStatusNotDetermined
Added kABAuthorizationStatusRestricted
Added kABOperationNotPermittedByUserError

Handlerとかがあるので大体分かると思いますが、

ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

こんな感じで許可を得てから連絡帳にアクセスするようになります。
まぁGPSの許可を得る時とかと同じイメージですね。
今までのABAddressBookCreate()は非推奨になりました。


ソースコードもざらっと抜粋して書いときます。

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) { // 未設定
ABAddressBookRef book;
ABAddressBookRequestAccessWithCompletion(book, ^(bool granted, CFErrorRef error) {

});
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusRestricted ||
ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusDenied) { // 拒否
UIAlertView *alert =
[[UIAlertView alloc] initWithTitle:@"お知らせ" message:@"連絡先へのアクセスが禁止されています。\n設定>プライバシー>連絡先から、アクセスの設定を\"オン\"に変更してください。"
delegate:self cancelButtonTitle:@"確認" otherButtonTitles:nil];
[alert show];
[alert release];
return;
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) { // 許可

}


もちろん
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0) {
も忘れずに。
スポンサーサイト


 | ホーム |  » page top


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。