iosswiftobjective-ccallkitdynamic-island

iOS devices with dynamic island shows empty user avatar. How to disable it?


We have VoIP feature in our iOS app which uses CallKit to handle calls. In new iOS devices with dynamic island I'm seeing an avatar in incoming call with nothing in it. I want to disable this but I don't know how to do it. Either remove this avatar or populate it, but having empty avatar doesn't look good.

CXCallUpdate has a property _localizedCallerImageURL but it is private. I don't see any other way to set or remove this avatar.

    CXCallUpdate *update = [[CXCallUpdate alloc] init];
update.localizedCallerName = aCall.callerIdString;
update.localizedCallerImageURL = nil; // Not accessible 
[self.cxProvider reportNewIncomingCallWithUUID:aCall.cxUUID update:update completion:^(NSError *error) {
    if (error) {

enter image description here


Solution

  • as I observed in my case, The Empty User Avatar comes when the remoteHandle's has an empty string as a value. so by checking if the remote handle value is not an empty string, you can avoid this issue.

    the case for an empty user's Avatar(in the dynamic island)

    let handle = ""
    let callUpdate = CXCallUpdate()
    callUpdate.remoteHandle = CXHandle(type: .phoneNumber, value: handle)
    

    The fix is simply check if handle is an empty string or nil if yes then replace it with any keyword or number like Unknown.