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."