Distribuisci app

L'API EMM di Google Play supporta i seguenti metodi di distribuzione per 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 nel policy di Device e impostalo chiamando Devices.update. Quando quando si esegue il provisioning di un nuovo dispositivo, devi impostare il criterio prima di aggiungere la l'account 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 della versione gestita del Play Store è definito dal valore 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 a layout del negozio dell'azienda. Il layout del negozio dell'azienda è la home page della versione gestita del Play Store quando è selezionata l'opzione whitelist e puoi accedervi in un'app "App di lavoro" tab quando è selezionato all. Puoi consentire al tuo cliente di personalizzare il layout del negozio aziendale incorporando la versione gestita di Google Play iframe (vedi Organizzare le app con l'iframe della versione gestita di Google Play).

Installare da remoto le app 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 quando si esegue il provisioning di un nuovo dispositivo, devi impostare il criterio prima di aggiungere la l'account Google Play al dispositivo, altrimenti il criterio non verrà applicato per un breve periodo di tempo dopo l'aggiunta dell'account al dispositivo.

È possibile impostare autoInstallMode su:

  • doNotAutoInstall: l'app non viene installata automaticamente.
  • autoInstallOnce: l'app viene installata automaticamente una volta, se l'utente disinstalla l'app e non verrà più installato.
  • forceAutoInstall: l'app viene installata automaticamente se l'utente disinstalla l'app e verrà installata di nuovo. Sui dispositivi gestiti, il DPC (controller criteri dispositivi) dovresti bloccare la disinstallazione utilizzando DevicePolicyManager.setUninstallBlocked

In caso di errore (perdita di connettività, mancanza di spazio di archiviazione e così via), le installazioni nuovi tentativi automatici finché l'operazione non riesce. Una strategia per nuovi tentativi con backoff esponenziale viene applicata per evitare di sprecare la batteria e i dati nel caso di un errori.

Priorità di installazione

Puoi scegliere l'ordine delle installazioni impostando autoInstallPriority. La la priorità deve essere un numero intero senza segno e il valore predefinito è 0. Le app saranno vengono installate in ordine crescente o in ordine di priorità, vale a dire che le app con il verrà installato per primo.

Vincoli di installazione

Puoi impostare vincoli di installazione per ogni app impostando un valore autoInstallConstraint, che ti consente di controllare lo stato richiesto della 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 vengono soddisfatti.

In un'istruzione autoInstallConstraint, la regola AND viene applicata tra i campi. Per ad esempio, con il seguente valore autoInstallConstraint, il dispositivo deve essere sia in carica e collegato a una rete illimitata (ad esempio, Wi-Fi) per installato:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

Installa automaticamente le app sui dispositivi di cui è stato eseguito il provisioning di recente

L'API EMM di Google Play invia una notifica NewDeviceEvent quando un dispositivo viene di cui è stato eseguito il provisioning. Esegui il push automatico dell'installazione delle app nelle nuove istanze di cui è stato eseguito il provisioning dispositivi, ascolta le notifiche di NewDeviceEvent. Da ogni NewDeviceEvent, recupera userId e deviceId, quindi chiama Devices.update per impostare il criterio per quel dispositivo.

Per informazioni su come abbonarti alle notifiche EMM, consulta Configura le notifiche EMM.

Distribuire app per i test chiusi

I test chiusi consentono agli sviluppatori di app di ricevere feedback sulle versioni in anteprima di utenti attendibili. Gli sviluppatori possono impostare test chiusi in Google Play Google Cloud. Puoi utilizzare l'API EMM di Play per consentire agli amministratori IT di distribuire (chiamate anche canali) di app per utenti specifici. La tua azienda I clienti possono utilizzare questa funzione non solo per testare app di terze parti, ma anche per testare di app private sviluppate internamente.

App idonee

Prima che uno sviluppatore aggiunga un'azienda all'elenco di tester chiusi di un'app, deve soddisfare i seguenti criteri:

  • Su Google Play viene pubblicata una versione di produzione dell'app.
  • In Google Play Console, la versione gestita di Google Play sia attivata nella pagina Impostazioni avanzate.
  • Tutte le versioni chiuse dell'app soddisfano requisiti del codice di versione.

Aggiungi un'azienda ai test chiusi

Gli sviluppatori di app possono aggiungere aziende ai test che utilizzano i metodi Alpha chiuso Test o Alpha test con gruppi Google. Per istruzioni, vedi la guida su come impostare un test aperto, chiuso o interno. Lo sviluppatore deve inserire l'ID organizzazione (chiamato anche ID azienda) di ciascuna azienda partecipante. Gli amministratori IT possono fornire dell'organizzazione agli sviluppatori di app di terze parti:

  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 la invii allo sviluppatore.

Requisiti aggiuntivi per le app private

Per le app private, lo sviluppatore deve anche aggiungere l'ID organizzazione di ogni all'azienda che partecipano nella scheda Versione gestita di Google Play della Impostazioni avanzate. Per istruzioni, vedi Pubblicare un'app privata.

Distribuisci canali chiusi agli utenti

Per recuperare un elenco di canali disponibili per un'azienda per un'app specifica: chiama Products.get. L'elenco appTracks[] contenuto nella risposta include i canali disponibili per ogni app. appTracks[].trackAlias è un utente un nome leggibile per il canale che puoi visualizzare nella console EMM e appTracks[].trackId è l'ID leggibile dalla macchina per la traccia.

Per concedere la visibilità a un utente per il canale chiuso di un'app, imposta il valore policy.productPolicy[].trackIds[] in policy di Device. Se per un dispositivo sono disponibili più tracce, il verrà installata la versione disponibile con il codice di versione più recente.

I trackId verranno rimossi automaticamente dalla chiamata a Products.get in alcune scenari come il seguente:

  • L'APK del canale è promosso in un altro canale o nella versione di produzione.
  • La versione di produzione viene aggiornata con una versione superiore rispetto al canale.
  • Uno sviluppatore interrompe il canale.

Tenere traccia delle licenze di app a pagamento

Per le app a pagamento, l'oggetto Grouplicenses tiene traccia del numero di licenze dell'azienda e quante licenze sono in uso. Puoi chiamare Grouplicenses.get per ottenere i dettagli della licenza di un'app.

Per poter installare un'app a pagamento su un dispositivo, l'azienda deve disporre di un licenza disponibile per l'app. Se è disponibile una licenza, l'app viene installata sul dispositivo e viene creato un oggetto Entitlements. 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 va a buon fine e non è stato creato alcun oggetto Entitlements.

Gli oggetti Grouplicenses e Entitlements non vengono utilizzati dalle applicazioni che sono distribuiti senza costi aggiuntivi.