Distribuisci app

L'API EMM di Google Play supporta i seguenti metodi di distribuzione per le app pubbliche e private:

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 in policy.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 utilizzando DevicePolicyManager.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:

  1. Accedi alla versione gestita di Google Play Store.
  2. Fai clic su Impostazioni amministratore.
  3. 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.