Check Permission and Read Contacts
Last updated
Verify that your app has permission to access device contacts and read all contacts from the address book.
AddressBookGetContactsAccessStatus
Check current permission status
AddressBookReadContacts
Fetch contacts from device
AddressBookGetReadContactsSuccessResult
Get contact count and metadata
AddressBookGetReadContactsError
Get error details when read fails
accessStatus (Enum: AddressBookContactsAccessStatus)
contactCount (Int)
nextOffset (Int)
errorCode (Int)
errorDescription (String)
Action: AddressBookGetContactsAccessStatus
Outputs:
accessStatus → accessStatus variable
Events:
authorizedEvent → ReadContacts
notDeterminedEvent → ReadContacts (will auto-prompt)
deniedEvent → ShowError
limitedEvent → ReadContacts (iOS 14+ partial access)
Action: AddressBookReadContacts
Inputs:
limit: 10 (read 10 contacts - Pass -1 to read all contacts)
offset: 0 (start from beginning)
mustIncludeName: true
mustIncludePhoneNumber: false
mustIncludeEmail: false
Events:
successEvent → ExtractResult
failureEvent → ExtractError
Note: This action waits for the callback internally and caches results in AddressBookUtils.
Action: AddressBookGetReadContactsSuccessResult
Outputs:
contactCount → contactCount variable
nextOffset → nextOffset variable
Transition: Go to DisplayCount
Action: AddressBookGetReadContactsError
Outputs:
errorCode → errorCode variable (Int)
errorDescription → errorDescription variable (String)
Transition: Go to ShowError
Display the contactCount value in your UI (e.g., "Found 150 contacts").
Permission Denied: If accessStatus is Denied, guide users to device Settings to enable contacts permission
No Contacts: contactCount may be 0 if device has no contacts or filters are too restrictive
nextOffset = -1: Indicates all contacts were loaded (no more pages available)
Last updated
CheckPermission
├─ Authorized → ReadContacts
├─ NotDetermined → ReadContacts (prompts user)
└─ Denied → ShowError
ReadContacts (waits for callback)
├─ Success → ExtractResult
└─ Failure → ExtractError
ExtractResult
└─ DisplayCount
ExtractError
└─ ShowError