HCE issues

This post contains sensitive language. Please revise it in order to continue.Hello, We are working on digital key style application using custom communication with HCE (Host Card Emulation). We have a working solution but there is one issue - if our application is not selected as default NFC application our users may see Wallet popup when there's no active presentment intent in our application. I didn't find in documentation any information how to stop Wallet from activating. I found there's requestAutomaticPassPresentationSuppression method in PassKit, it requires special permission, however I am not sure if it can be used in this situation, as there's no information how it will impact HCE communication in our application. I'll be greatful for any advice.

Regards, Valdemar

Answered by DTS Engineer in 893671022

Hi @Valdemar01,

You wrote:

We have a working solution but there is one issue - if our application is not selected as default NFC application our users may see Wallet popup when there's no active presentment intent in our application. I didn't find in documentation any information how to stop Wallet from activating. I found there's requestAutomaticPassPresentationSuppression method in PassKit, it requires special permission, however I am not sure if it can be used in this situation, as there's no information how it will impact HCE communication in our application. [...]

The pass presentation suppression managed entitlement and its API family does not interact with HCE communication at all as they are on completely separate layers of the system.

The NFC routing logic is completely independent of the PassKit UI layer. Suppressing Wallet's pass presentation does not clear or modify the AID routing table, nor affect background NFC emulation, and does not impact whether your app is foreground or background.

However, if you HCE app properly registers its AIDs via the com.apple.developer.nfc.hce entitlement and the user sets your app as the default contactless app, the NFC controller prioritizes your AID routing, and the Wallet popup is naturally suppressed for those AIDs at the routing layer.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

Hi @Valdemar01,

You wrote:

We have a working solution but there is one issue - if our application is not selected as default NFC application our users may see Wallet popup when there's no active presentment intent in our application. I didn't find in documentation any information how to stop Wallet from activating. I found there's requestAutomaticPassPresentationSuppression method in PassKit, it requires special permission, however I am not sure if it can be used in this situation, as there's no information how it will impact HCE communication in our application. [...]

The pass presentation suppression managed entitlement and its API family does not interact with HCE communication at all as they are on completely separate layers of the system.

The NFC routing logic is completely independent of the PassKit UI layer. Suppressing Wallet's pass presentation does not clear or modify the AID routing table, nor affect background NFC emulation, and does not impact whether your app is foreground or background.

However, if you HCE app properly registers its AIDs via the com.apple.developer.nfc.hce entitlement and the user sets your app as the default contactless app, the NFC controller prioritizes your AID routing, and the Wallet popup is naturally suppressed for those AIDs at the routing layer.

Cheers,

Paris X Pinkney |  WWDR | DTS Engineer

HCE issues
 
 
Q