L'API EMM di Google Play supporta i seguenti metodi di distribuzione per le app pubbliche e private:
- Gli utenti possono installare manualmente le app dalla versione gestita di Google Play Store.
- Gli amministratori IT possono installare da remoto le app sui dispositivi degli utenti.
Installare manualmente le app dalla versione gestita di Google Play Store
Puoi definire quali app possono essere installate da un utente nell'policy
di Device
e impostarle chiamando il numero Devices.update
. Quando esegui il provisioning di un nuovo dispositivo, devi impostare il criterio prima di aggiungere l'account della versione gestita di Google Play al dispositivo, altrimenti il criterio non verrà applicato per un breve periodo di tempo dopo l'aggiunta dell'account al dispositivo.
Il comportamento del Play Store gestito è definito dal valore di
policy.productAvailabilityPolicy
:
all
: sono disponibili tutte le app pubbliche del Play Store.whitelist
: sono disponibili solo le app elencate inpolicy.productPolicy
.
In entrambi i casi, tutte le app in policy.productPolicy
vengono aggiunte per impostazione predefinita al layout dello store dell'azienda. Il layout dello store aziendale è la home page
della versione gestita del Play Store quando si seleziona whitelist
ed è possibile accedervi
da una scheda "App di lavoro" quando si seleziona all
. Puoi consentire al tuo cliente di personalizzare il layout dello store aziendale incorporando l'iframe della versione gestita di Google Play (vedi Organizzare le app con l'iframe della versione gestita di Google Play).
Installare app da remoto sui dispositivi degli utenti
Per installare da remoto (detta anche installazione push) un'app sul dispositivo di un utente, imposta
policy.productPolicy.autoInstallPolicy
in policy
di Device
. Quando esegui il provisioning di un nuovo dispositivo, devi impostare il criterio prima di aggiungere l'account della versione gestita di Google Play al dispositivo, altrimenti il criterio non verrà applicato per un breve periodo di tempo dopo l'aggiunta dell'account al dispositivo.
autoInstallMode
può essere impostato su:
doNotAutoInstall
: l'app non viene installata automaticamente.autoInstallOnce
: l'app viene installata automaticamente una volta; se l'utente disinstalla l'app, non verrà installata di nuovo.forceAutoInstall
: l'app viene installata automaticamente. Se l'utente disinstalla l'app, l'app verrà installata di nuovo. Sui dispositivi gestiti, il DPC deve bloccare la disinstallazione utilizzandoDevicePolicyManager.setUninstallBlocked
.
In caso di errore (perdita di connettività, mancanza di spazio di archiviazione ecc.), le installazioni vengono ritentate automaticamente fino all'esito positivo. Viene applicata una strategia di backoff esponenziale per evitare di sprecare batteria e dati in caso di guasti irreversibili.
Priorità installazione
Puoi scegliere l'ordine di installazione impostando autoInstallPriority
. La priorità deve essere un numero intero senza segno e il valore predefinito è 0. Le app verranno installate in ordine o con priorità crescente, il che significa che le app con un valore di priorità più basso saranno installate per prime.
Installa vincoli
Puoi impostare vincoli di installazione per ogni app impostando un autoInstallConstraint
, che ti consente di controllare lo stato richiesto del dispositivo durante l'installazione:
- se il dispositivo deve essere connesso a una rete Wi-Fi,
- se il dispositivo deve essere in carica,
- e se il dispositivo deve essere inattivo (non utilizzato attivamente dall'utente).
Se i vincoli non vengono soddisfatti immediatamente, le installazioni interessate verranno messe in coda fino a quando i vincoli non saranno soddisfatti.
In un elemento autoInstallConstraint
, la regola AND viene applicata tra i campi. Ad esempio, con l'autoInstallConstraint
seguente, il dispositivo deve essere in carica e connesso a una rete non a consumo (ad esempio Wi-Fi) per poter installare l'app:
"autoInstallConstraint": [
"chargingStateConstraint" : "chargingRequired",
"networkTypeConstraint" : "unmeteredNetwork"
]
Installa automaticamente le app sui dispositivi di cui è stato appena eseguito il provisioning
L'API EMM di Google Play invia una notifica NewDeviceEvent
al primo provisioning di un dispositivo. Per eseguire automaticamente il push delle app sui dispositivi di cui è stato appena eseguito il provisioning, esamina le notifiche di NewDeviceEvent
. Da ogni NewDeviceEvent
, recupera i userId
e deviceId
, quindi chiama Devices.update
per impostare il criterio per il dispositivo.
Per informazioni su come abbonarti alle notifiche EMM, consulta Configurare le notifiche EMM.
Distribuire app per i test chiusi
I test chiusi consentono agli sviluppatori di app di ricevere feedback sulle versioni in anteprima della propria app da utenti attendibili. Gli sviluppatori possono configurare test chiusi in Google Play Console. Utilizzi l'API EMM di Play per consentire agli amministratori IT di distribuire versioni chiuse (chiamate anche canali) delle app a utenti specifici. I tuoi clienti aziendali possono utilizzare questa funzionalità non solo per testare le app di terze parti, ma anche per testare le app private sviluppate internamente.
App idonee
Prima di uno sviluppatore aggiungere un'azienda all'elenco di tester chiusi di un'app, l'app deve soddisfare i seguenti criteri:
- Su Google Play è pubblicata una versione di produzione dell'app.
- In Google Play Console, la versione gestita di Google Play sia attivata nella pagina Impostazioni avanzate dell'app.
- Tutte le versioni chiuse dell'app soddisfano i requisiti relativi ai codici di versione.
Aggiungere un'azienda ai test chiusi
Gli sviluppatori di app possono aggiungere aziende ai test che utilizzano i metodi Alpha test chiuso o Alpha test utilizzando gruppi Google. Per le istruzioni, consulta la guida su come configurare un test aperto, chiuso o interno. Lo sviluppatore deve inserire l'ID organizzazione (chiamato anche ID azienda) di ogni azienda partecipante. Gli amministratori IT possono fornire l'ID della propria organizzazione agli sviluppatori di app di terze parti seguendo questi passaggi:
- Accedi alla versione gestita di Google Play Store.
- Fai clic su Impostazioni amministratore.
- Copia la stringa ID organizzazione dalla casella Informazioni sull'organizzazione e inviala allo sviluppatore.
Requisiti aggiuntivi per le app private
Per le app private, lo sviluppatore deve anche aggiungere l'ID organizzazione di ogni azienda partecipante nella scheda Versione gestita di Google Play della pagina Impostazioni avanzate dell'app. Per le istruzioni, consulta la pagina relativa alla pubblicazione di un'app privata.
Distribuire canali chiusi agli utenti
Per recuperare un elenco dei canali disponibili per un'azienda per un'app specifica, chiama il numero Products.get
. L'elenco appTracks[]
contenuto nella risposta include i canali disponibili per ogni app. appTracks[].trackAlias
è un nome leggibile dall'utente per il canale che puoi visualizzare nella tua console EMM, mentre appTracks[].trackId
è l'ID leggibile dal computer per il canale.
Per concedere a un utente visibilità sul canale chiuso di un'app, imposta policy.productPolicy[].trackIds[]
in policy
di Device
. Se sono disponibili più canali per un dispositivo, verrà installata la versione disponibile con il codice versione più recente.
I trackId verranno rimossi automaticamente dalla chiamata Products.get
in determinati
scenari, tra cui:
- L'APK del canale viene promosso in un altro canale o nella produzione.
- La versione di produzione viene aggiornata con una versione superiore rispetto al canale.
- Uno sviluppatore interrompe il canale.
Tenere traccia delle licenze delle app a pagamento
Per le app a pagamento, l'oggetto Grouplicenses
tiene traccia del numero di licenze di proprietà di un'azienda e di quante sono in uso. Puoi chiamare il numero
Grouplicenses.get
per ottenere i dettagli della licenza per un'app.
Prima che un'app a pagamento possa essere installata su un dispositivo, l'azienda deve disporre di una
licenza per l'app. Se è disponibile una licenza, l'app viene installata
sul dispositivo e viene creato un oggetto Entitlements
. Un oggetto Entitlements
collega una licenza a un utente e diminuisce il numero di licenze disponibili per l'app. Se non sono disponibili licenze, l'installazione dell'app non andrà a buon fine e non viene creato alcun oggetto Entitlements
.
Gli oggetti Grouplicenses
e Entitlements
non vengono utilizzati da applicazioni
distribuite senza costi aggiuntivi.