Nessuna connessione IPC su Android 11+ (mancante )

Sintomo

Su Android 11 o versioni successive, la tua app non riesce a connettersi all'applicazione di pagamento. Le richieste non producono alcuna risposta né errore — il binding semplicemente non si forma mai. Su Android 10 e versioni precedenti lo stesso codice funziona, il che fa sembrare questo un bug specifico del dispositivo.

Causa

Android 11 ha introdotto la visibilità dei pacchetti: per impostazione predefinita un'app non può vedere o connettersi ad altre app installate sul dispositivo. App2App si connette all'applicazione di pagamento Market Pay, quindi quell'app deve essere dichiarata esplicitamente. Senza la dichiarazione, il target del binding è invisibile e la connessione fallisce silenziosamente.

Soluzione

Aggiungi un elemento <queries> al tuo AndroidManifest.xml, come figlio diretto di <manifest>:

<queries>
    <package android:name="com.marketpay.pos" />
</queries>

Ricostruisci e reinstalla. Il binding IPC ora si formerà su Android 11+.

Verifica

Dopo averlo aggiunto, invia una richiesta di login — una RetailerLoginResponse riuscita conferma che il binding funziona. Se il login continua a non produrre nulla, verifica che una sessione sia effettivamente stabilita (vedi Ciclo di vita della sessione e del login) e che l'applicazione di pagamento sia installata sul dispositivo.

Correlati

  • Quickstart — il passo 2 copre questa dichiarazione.
  • Risoluzione problemi: richieste ignorate / nessuna risposta — l'altra causa di "nessuna risposta."