Διαχειριζόμενες Διαμορφώσεις στο Android: Ρύθμιση Εφαρμογών για Εργαζομένους Πριν τις Ανοίξουν
Ρυθμίστε το Chrome, το email, εφαρμογές σάρωσης και εσωτερικές εφαρμογές Android πριν τις ανοίξουν οι εργαζόμενοι: πώς λειτουργούν οι διαχειριζόμενες διαμορφώσεις, από πού έρχονται τα πεδία, τιμές ανά συσκευή και έλεγχος.
Πίνακας περιεχομένων
Ένα συνηθισμένο αίτημα υποστήριξης την πρώτη μέρα είναι το εξής. Ένας εργαζόμενος ανοίγει την εφαρμογή της εταιρείας, η εφαρμογή ζητά τη διεύθυνση ενός διακομιστή και κανείς στον χώρο εργασίας δεν τη γνωρίζει. Κάποιος από το IT πληκτρολογεί τότε την ίδια URL, το ίδιο όνομα λογαριασμού ή την ίδια ρύθμιση σε κάθε συσκευή, και αργά ή γρήγορα σε μία από αυτές γίνεται τυπογραφικό λάθος.
Το Android Enterprise διαθέτει έναν τυπικό τρόπο για την αποφυγή αυτού, ο οποίος ονομάζεται διαχειριζόμενες διαμορφώσεις (managed configurations). Ορίζετε τις τιμές μιας εφαρμογής μία φορά στην πολιτική MDM σας. Αυτές φτάνουν σε κάθε συσκευή που καλύπτει η εν λόγω πολιτική και η εφαρμογή τις διαβάζει κατά την εκκίνηση. Όταν ένας εργαζόμενος ανοίγει το Chrome, την εφαρμογή ηλεκτρονικού ταχυδρομείου, μια εφαρμογή σάρωσης ή τη δική σας εσωτερική επιχειρησιακή εφαρμογή, αυτή γνωρίζει ήδη πού να συνδεθεί και τι επιτρέπεται.
Αυτός ο οδηγός καλύπτει και τις δύο πλευρές της ρύθμισης. Θα μάθετε πώς να βρίσκετε και να εφαρμόζετε διαχειριζόμενες διαμορφώσεις για κοινές εφαρμογές στο πρόγραμμα επεξεργασίας πολιτικής του MDM σας. Θα μάθετε επίσης τι να ζητήσετε από τους εσωτερικούς σας προγραμματιστές, ώστε τα δικά σας APK να υποστηρίζουν τον ίδιο μηχανισμό.
Τι είναι μια διαχειριζόμενη διαμόρφωση και ποιος ορίζει τα πεδία
Μια διαχειριζόμενη διαμόρφωση είναι ένα σύνολο ρυθμίσεων κλειδιού-τιμής (key-value) που ένας οργανισμός προωθεί σε μια εφαρμογή σε μια διαχειριζόμενη συσκευή Android. Η τεκμηρίωση του Android Enterprise της Google περιγράφει την αλυσίδα ως εξής:
- Ο προγραμματιστής της εφαρμογής ορίζει το σχήμα (schema). Στο αρχείο res/xml/app_restrictions.xml της εφαρμογής, ο προγραμματιστής δηλώνει κάθε ρύθμιση που θα δέχεται η εφαρμογή: το κλειδί της, τον τύπο της (συμβολοσειρά, boolean, ακέραιος, επιλογή, πολλαπλή επιλογή, bundle κ.ο.κ.), έναν τίτλο και μια προεπιλεγμένη τιμή.
- Το Google Play δημοσιεύει το σχήμα. Όταν η εφαρμογή μεταφορτώνεται στο Google Play, το Play διαβάζει αυτό το αρχείο. Το Managed Google Play μπορεί στη συνέχεια να εμφανίσει τα πεδία στις κονσόλες EMM ως φόρμα.
- Το MDM σας στέλνει τις τιμές. Μέσω του Android Management API, η καταχώριση της εφαρμογής σε μια πολιτική συσκευής μεταφέρει τις τιμές που επιλέξατε.
- Η εφαρμογή τις διαβάζει. Στη συσκευή, η εφαρμογή καλεί το RestrictionsManager.getApplicationRestrictions() και εφαρμόζει όσα βρίσκει.
Επομένως, ο προγραμματιστής της εφαρμογής αποφασίζει ποια πεδία υπάρχουν, όχι το MDM σας. Εάν ο προγραμματιστής δεν δημοσίευσε ένα κλειδί "server URL", καμία κονσόλα δεν μπορεί να προδιαμορφώσει το URL του διακομιστή. Η κονσόλα μπορεί να συμπληρώσει μόνο πεδία που έχει εκθέσει ο προγραμματιστής.
Σημείωση: Οι διαχειριζόμενες διαμορφώσεις είναι ξεχωριστές από τις πολιτικές συσκευής. Μια πολιτική συσκευής ελέγχει το ίδιο το Android, για παράδειγμα την κάμερα, το USB ή το Wi-Fi. Μια διαχειριζόμενη διαμόρφωση ελέγχει ρυθμίσεις μέσα σε μια συγκεκριμένη εφαρμογή. Συνήθως χρειάζεστε και τα δύο.
Πριν ξεκινήσετε
- Οι συσκευές είναι εγγεγραμμένες στο MDM σας με Android Enterprise (πλήρως διαχειριζόμενες ή με προφίλ εργασίας).
- Οι εφαρμογές που θέλετε να διαμορφώσετε είναι εγκεκριμένες στο διαχειριζόμενο Google Play ή είναι ιδιωτικές εφαρμογές που δημοσίευσαν οι προγραμματιστές σας εκεί.
- Έχετε μια δοκιμαστική συσκευή που είναι εγγεγραμμένη σε μια δοκιμαστική πολιτική, όχι στην πολιτική παραγωγής σας.
- Γνωρίζετε τις τιμές που θέλετε να προωθήσετε, όπως ονόματα κεντρικών υπολογιστών διακομιστή, επιτρεπόμενα URL και μορφές λογαριασμών.

Βήμα 1: Ελέγξτε αν η εφαρμογή υποστηρίζει διαχειριζόμενη διαμόρφωση
Πριν σχεδιάσετε οτιδήποτε, επιβεβαιώστε ότι η εφαρμογή δημοσιεύει ένα σχήμα. Μπορείτε να το ελέγξετε σε τρία σημεία:
- Στο πρόγραμμα επεξεργασίας πολιτικής του MDM σας. Προσθέστε την εφαρμογή σε μια δοκιμαστική πολιτική και δείτε αν εμφανίζεται μια φόρμα διαμόρφωσης. Εάν εμφανιστεί, ο προγραμματιστής έχει δημοσιεύσει ένα σχήμα.
- Στην επιχειρησιακή τεκμηρίωση του προμηθευτή. Πολλοί προμηθευτές δημοσιεύουν τα κλειδιά τους. Για παράδειγμα, η Google παραθέτει τις εταιρικές πολιτικές του Chrome, με την υποστήριξη πλατφόρμας για καθεμία, στη διεύθυνση chromeenterprise.google/policies.
- Στην ομάδα υποστήριξης του προμηθευτή. Ρωτήστε: "Υποστηρίζει η εφαρμογή σας για Android διαχειριζόμενες διαμορφώσεις Android Enterprise και ποια κλειδιά εκθέτει;"
Σημειώστε κάθε κλειδί που χρειάζεστε και τον τύπο του. Οι τύποι σχήματος περιλαμβάνουν string, bool, integer, choice, multi-select, hidden, bundle και bundle_array. Ένα πεδίο bool περιμένει true ή false και όχι το κείμενο "true", ενώ ένα πεδίο multi-select περιμένει τιμές από μια σταθερή λίστα.
Αναμενόμενο αποτέλεσμα: Για κάθε εφαρμογή, γνωρίζετε εάν υποστηρίζει διαχειριζόμενη διαμόρφωση και ποια πεδία θα ορίσετε.
Προειδοποίηση: Εάν μια εφαρμογή δεν διαθέτει σχήμα, δεν υπάρχει παράκαμψη εντός του συστήματος διαχειριζόμενης διαμόρφωσης. Οι επιλογές σας είναι να ζητήσετε από τον προμηθευτή να προσθέσει ένα, να αλλάξετε εφαρμογή ή να διατηρήσετε ένα τεκμηριωμένο βήμα μη αυτόματης ρύθμισης για τη συγκεκριμένη εφαρμογή.
Βήμα 2: Προσθέστε την εφαρμογή στην πολιτική και ανοίξτε τη διαμόρφωσή της
- Ανοίξτε την πολιτική που καλύπτει τις συσκευές-στόχους. Χρησιμοποιήστε πρώτα τη δοκιμαστική σας πολιτική.
- Προσθέστε την εφαρμογή από το διαχειριζόμενο Google Play, εάν δεν περιλαμβάνεται ήδη στην πολιτική.
- Ανοίξτε τη φόρμα διαμόρφωσης της εφαρμογής.
Στο Nomid MDM, η κάρτα της εφαρμογής στον επεξεργαστή πολιτικής ανοίγει τη διαχειριζόμενη διαμόρφωσή της. Πρόκειται για τις ρυθμίσεις που δημοσιεύει ο προγραμματιστής μέσω του Google Play, εμφανισμένες ως πεδία προς συμπλήρωση. Οι δικές της εφαρμογές Android της Nomid διαβάζουν τις ρυθμίσεις τους με τον ίδιο τρόπο.
Αναμενόμενο αποτέλεσμα: Βλέπετε μια φόρμα της οποίας τα πεδία αντιστοιχούν στα κλειδιά που καταγράψατε στο Βήμα 1.
Σημείωση: Το Google Play διαβάζει το σχήμα από την εφαρμογή που ανεβάστηκε, οπότε η φόρμα εμφανίζεται για εφαρμογές που διανέμονται μέσω του διαχειριζόμενου Google Play, δημόσιες και ιδιωτικές. Στη Nomid, οι ιδιωτικές εφαρμογές που φιλοξενούνται στο Nomid Store εμφανίζουν επίσης φόρμα διαμόρφωσης όταν η εφαρμογή που ανεβάστηκε δηλώνει σχήμα. Για κάθε άλλο τρόπο διανομής, ελέγξτε πώς λειτουργεί η διαμόρφωση πριν βασιστείτε σε αυτήν.
Βήμα 3: Συμπληρώστε τη διαμόρφωση για κοινές εφαρμογές
Πριν συμπληρώσετε τιμές, διαβάστε τα Βήματα 4 και 5. Αποφασίστε ποιες τιμές είναι ίδιες για όλες τις συσκευές της πολιτικής και ποιες διαφέρουν ανά τοποθεσία ή συσκευή, ώστε να μη χρειαστεί να ξαναφτιάξετε τις φόρμες αργότερα.
Παρακάτω παρατίθενται τα τρία μοτίβα που χρειάζονται οι περισσότεροι στόλοι. Τα ονόματα των πεδίων διαφέρουν μεταξύ των προμηθευτών, επομένως αντιμετωπίστε τα κλειδιά ως παραδείγματα και επιβεβαιώστε τα με βάση τη φόρμα της εκάστοτε εφαρμογής.
3α. Πρόγραμμα περιήγησης: αρχική σελίδα και λίστες URL (Chrome)
Το Chrome στο Android δέχεται πολλές από τις ίδιες εταιρικές πολιτικές με το Chrome για επιτραπέζιους υπολογιστές, οι οποίες παραδίδονται ως διαχειριζόμενη διαμόρφωση. Οι πολιτικές που χρησιμοποιούνται συχνά σε συσκευές εργαζομένων περιλαμβάνουν:
Κλειδί πολιτικής | Παράδειγμα τιμής | Σκοπός |
|---|---|---|
URLBlocklist | ["*"] | Αποκλεισμός όλων των ιστότοπων από προεπιλογή |
URLAllowlist | ["intranet.example.com", "portal.example.com"] | Να επιτρέπονται μόνο ιστότοποι εργασίας |
IncognitoModeAvailability | 1 | Απενεργοποίηση καρτελών ανώνυμης περιήγησης |
ManagedBookmarks | Λίστα ζευγών ονόματος/URL | Προβολή συνδέσμων εργασίας μπροστά στον εργαζόμενο |
Πριν εξαρτηθείτε από μια πολιτική, ελέγξτε τη λίστα πολιτικών του Chrome Enterprise για να επιβεβαιώσετε ότι υποστηρίζεται στο Android. Ορισμένες πολιτικές υπολογιστή, ειδικά όσον αφορά τη συμπεριφορά εκκίνησης και αρχικής σελίδας, συμπεριφέρονται διαφορετικά ή δεν είναι διαθέσιμες στο Android. Εάν χρειάζεστε μια σταθερή οθόνη εκκίνησης, οι διαχειριζόμενοι σελιδοδείκτες ή ένας σύνδεσμος ιστού σε εκκινητή kiosk είναι συχνά πιο προβλέψιμοι. Αν μπλοκάρετε τα πάντα με URLBlocklist ["*"], προσθέστε στο URLAllowlist και τις σελίδες σύνδεσης του παρόχου ταυτότητάς σας, αλλιώς οι ιστότοποι εργασίας που απαιτούν σύνδεση δεν θα φορτώνουν.
3β. Εφαρμογή ηλεκτρονικού ταχυδρομείου: διακομιστής και λογαριασμός
Οι εταιρικές εφαρμογές ηλεκτρονικού ταχυδρομείου συνήθως εκθέτουν πεδία όπως:
- Διεύθυνση ηλεκτρονικού ταχυδρομείου ή όνομα χρήστη
- Όνομα κεντρικού υπολογιστή διακομιστή (για παράδειγμα, κεντρικός υπολογιστής Exchange ActiveSync)
- Απαίτηση SSL/TLS
- Εάν μπορούν να προστεθούν προσωπικοί λογαριασμοί
Οι τιμές ανά χρήστη, όπως η διεύθυνση ηλεκτρονικού ταχυδρομείου, καλύπτονται στο Βήμα 5. Προς το παρόν, συμπληρώστε τα πεδία που είναι ίδια για όλους, όπως ο κεντρικός υπολογιστής του διακομιστή και οι επιλογές ασφαλείας.
3γ. Εφαρμογές σάρωσης και επιχειρησιακές εφαρμογές: URL διακομιστή και συμπεριφορά
Τα βοηθητικά προγράμματα ανθεκτικών συσκευών, οι εφαρμογές σάρωσης και οι επιχειρηματικές εφαρμογές συνήθως εκθέτουν:
- Βασικό URL υποστήριξης (backend) ή API, για παράδειγμα https://wms.example.com/api
- Κωδικό μισθωτή (tenant), τοποθεσίας ή αποθήκης
- Επιλογές εναλλαγής λειτουργιών, όπως λειτουργία εκτός σύνδεσης, σάρωση μέσω κάμερας έναντι σαρωτή υλικού ή απενεργοποίηση καταγραφής εντοπισμού σφαλμάτων
Αποθηκεύστε την πολιτική. Στη συνέχεια βεβαιωθείτε ότι η συσκευή δοκιμής έχει ανατεθεί σε αυτήν. Αναμενόμενο αποτέλεσμα: Η φόρμα κάθε εφαρμογής περιέχει τις κοινές τιμές αυτής της πολιτικής, η πολιτική έχει αποθηκευτεί και η συσκευή δοκιμής τη χρησιμοποιεί.
Προειδοποίηση: Αποφύγετε την εισαγωγή κωδικών πρόσβασης ή μυστικών μακράς διάρκειας στη διαχειριζόμενη διαμόρφωση. Οι τιμές αποθηκεύονται στη συσκευή και είναι αναγνώσιμες από την εφαρμογή. Προτιμήστε ροές όπου η διαμόρφωση κατευθύνει την εφαρμογή στον σωστό διακομιστή και ο εργαζόμενος ή η εφαρμογή πραγματοποιεί στη συνέχεια έλεγχο ταυτότητας.
Βήμα 4: Ορίστε το μία φορά ανά πολιτική
Η διαχειριζόμενη διαμόρφωση ανήκει στην πολιτική, όχι σε μια μεμονωμένη συσκευή. Κάθε συσκευή στην πολιτική λαμβάνει τις ίδιες τιμές. Χρησιμοποιήστε το προς όφελός σας:
- Ομαδοποιήστε τις συσκευές με βάση το τι διαφέρει. Εάν το κατάστημα A και το κατάστημα B χρησιμοποιούν διαφορετικά URL υποστήριξης, χρειάζονται διαφορετική διαμόρφωση. Οργανώστε τις πολιτικές ή τις ομάδες πολιτικών σας γύρω από αυτήν τη διαφορά.
- Επαναχρησιμοποιήστε μια γνωστή καλή βάση. Δημιουργήστε μία πλήρως διαμορφωμένη πολιτική και χρησιμοποιήστε την ως σημείο εκκίνησης για νέες τοποθεσίες, ώστε να μην ανακατασκευάζετε τη διαμόρφωση με μη αυτόματο τρόπο. Στο Nomid, τα πρότυπα πολιτικής και οι ομάδες πολιτικών εξυπηρετούν αυτόν τον σκοπό.
- Αλλάξτε μία φορά, αναπτύξτε παντού. Όταν αλλάζει το URL του διακομιστή, επεξεργαστείτε το στην πολιτική. Οι συσκευές λαμβάνουν τη νέα τιμή στον επόμενο συγχρονισμό πολιτικής τους.
Αναμενόμενο αποτέλεσμα: Κάθε ξεχωριστό σύνολο τιμών αντιστοιχίζεται σε ακριβώς μία πολιτική ή ομάδα πολιτικών και τίποτα δεν διαμορφώνεται ανά συσκευή με μη αυτόματο τρόπο.

Βήμα 5: Διαχείριση τιμών ανά συσκευή
Ορισμένες τιμές είναι διαφορετικές σε κάθε συσκευή: η διεύθυνση ηλεκτρονικού ταχυδρομείου ενός χρήστη, ένα όνομα συσκευής, μια ετικέτα περιουσιακού στοιχείου ή ένας σειριακός αριθμός που χρειάζεται η εφαρμογή σας για την παραχώρηση άδειας χρήσης. Από το Android 10, οι συνηθισμένες εφαρμογές δεν μπορούν να διαβάσουν μόνες τους τον σειριακό αριθμό υλικού, επομένως η διαβίβασή του μέσω διαχειριζόμενης διαμόρφωσης είναι ένα κοινό μοτίβο.
Υπάρχουν δύο γενικές προσεγγίσεις:
- Μεταβλητές. Το Android Management API επιτρέπει σε μια κονσόλα να επισυνάπτει μεταβλητές διαμόρφωσης σε ένα πρότυπο διαχειριζόμενης διαμόρφωσης. Ένα πρότυπο μπορεί στη συνέχεια να επιλυθεί σε διαφορετικές τιμές σε κάθε συσκευή. Ο τρόπος με τον οποίο μια κονσόλα το εκθέτει αυτό και ποιες μεταβλητές προσφέρει διαφέρει μεταξύ των προϊόντων. Επιβεβαιώστε με τον προμηθευτή σας ποια χαρακτηριστικά συσκευής ή χρήστη μπορούν να εισαχθούν πριν σχεδιάσετε γύρω από αυτά.
- Μικρότερα πεδία εφαρμογής πολιτικής. Εάν η τιμή ανά συσκευή αντιστοιχεί πραγματικά σε μια τοποθεσία ή ομάδα, δώστε σε αυτήν την ομάδα τη δική της πολιτική. Για λίγες συσκευές, αυτό είναι απλό. Για εκατοντάδες, δεν κλιμακώνεται και αυτό είναι ένδειξη ότι χρειάζεστε μεταβλητές ή μια αλλαγή στην εφαρμογή.
Μια τρίτη επιλογή βρίσκεται στην πλευρά της εφαρμογής. Η εφαρμογή μπορεί να λάβει μια κοινόχρηστη τιμή, όπως ένα αναγνωριστικό μισθωτή (tenant ID), από τη διαμόρφωση και στη συνέχεια να ανακτήσει ρυθμίσεις για συγκεκριμένη συσκευή από το δικό της backend μετά τη σύνδεση. Αυτό συχνά αποδεικνύεται πιο ανθεκτικό από την προώθηση κάθε λεπτομέρειας ανά συσκευή μέσω του MDM.
Αναμενόμενο αποτέλεσμα: Έχετε επιλέξει, ανά πεδίο, εάν η τιμή είναι κοινόχρηστη (σε επίπεδο πολιτικής), μεταβλητή (επιλύεται ανά συσκευή) ή ανακτάται από την εφαρμογή μετά τη σύνδεση.
Βήμα 6: Επαληθεύστε ότι η εφαρμογή έλαβε την αλλαγή
- Επιβεβαιώστε ότι η συσκευή έλαβε την πολιτική. Ελέγξτε την κατάσταση τελευταίας εμφάνισης ή συγχρονισμού στην κονσόλα σας. Στο Nomid, η λίστα περιουσιακών στοιχείων δείχνει την τελευταία εμφάνιση και την κατάσταση επικοινωνίας.
- Επιβεβαιώστε ότι η εφαρμογή είναι εγκατεστημένη. Μια διαμόρφωση που στέλνεται πριν ολοκληρωθεί η εγκατάσταση εφαρμόζεται μόλις υπάρξει η εφαρμογή, αλλά η εφαρμογή πρέπει όντως να είναι εγκατεστημένη. Ελέγξτε τη λίστα εφαρμογών της συσκευής στην κονσόλα ή στην ίδια τη συσκευή.
- Τερματίστε αναγκαστικά και ανοίξτε ξανά την εφαρμογή. Πολλές εφαρμογές διαβάζουν τη διαμόρφωσή τους μόνο κατά την εκκίνηση. Κάντε αναγκαστικό τερματισμό από τη σελίδα της εφαρμογής στις Ρυθμίσεις. Αν η πολιτική μπλοκάρει τις Ρυθμίσεις, όπως σε ένα kiosk, επανεκκινήστε τη συσκευή, κάτι που γίνεται και απομακρυσμένα.
- Ελέγξτε μέσα στην εφαρμογή. Το πεδίο διακομιστή θα πρέπει να είναι προσυμπληρωμένο και κλειδωμένο, ο αποκλεισμένος ιστότοπος θα πρέπει να είναι αποκλεισμένος κ.ο.κ. Ένα απομακρυσμένο στιγμιότυπο οθόνης σάς επιτρέπει να κάνετε τον έλεγχο χωρίς να χρειάζεται να πιάσετε τη συσκευή στα χέρια σας.
Αναμενόμενο αποτέλεσμα: Στη συσκευή δοκιμής, κάθε διαμορφωμένη εφαρμογή δείχνει τις τιμές που στάλθηκαν χωρίς χειροκίνητη εισαγωγή. Στη συνέχεια κάντε σταδιακή ανάπτυξη: σημειώστε τις τρέχουσες τιμές για να μπορείτε να επιστρέψετε, μεταφέρετε τις δοκιμασμένες τιμές στην πολιτική παραγωγής, εφαρμόστε την πρώτα σε μια μικρή πιλοτική ομάδα και επεκτείνετε όταν οι πιλοτικές συσκευές δείχνουν τις σωστές τιμές.
Σημείωση: Εάν η εφαρμογή εξακολουθεί να εμφανίζει παλιές τιμές μετά από αναγκαστική διακοπή, ανατρέξτε στις συνήθεις ερωτήσεις αντιμετώπισης προβλημάτων παρακάτω. Η αιτία συνήθως έγκειται στον τρόπο με τον οποίο η εφαρμογή χειρίζεται τη διαμόρφωση, όχι στην παράδοση.
Για εσωτερικές εφαρμογές: ζητήστε από τους προγραμματιστές σας να δημοσιεύσουν ένα σχήμα
Εάν η δική σας εφαρμογή εξακολουθεί να ζητά από τους εργαζόμενους να πληκτρολογήσουν ένα URL διακομιστή, η λύση βρίσκεται στον κώδικα της εφαρμογής. Μπορείτε να στείλετε τις ακόλουθες οδηγίες στην ομάδα ανάπτυξής σας.
1. Δηλώστε το σχήμα
Δημιουργήστε το res/xml/app_restrictions.xml:
<?xml version="1.0" encoding="utf-8"?>
<restrictions xmlns:android="http://schemas.android.com/apk/res/android">
<restriction
android:key="server_url"
android:title="@string/cfg_server_url_title"
android:description="@string/cfg_server_url_desc"
android:restrictionType="string"
android:defaultValue="" />
<restriction
android:key="site_code"
android:title="@string/cfg_site_code_title"
android:restrictionType="string"
android:defaultValue="" />
<restriction
android:key="allow_offline"
android:title="@string/cfg_offline_title"
android:restrictionType="bool"
android:defaultValue="false" />
</restrictions>2. Αναφέρετέ το στο manifest
<application ...>
<meta-data
android:name="android.content.APP_RESTRICTIONS"
android:resource="@xml/app_restrictions" />
</application>3. Διαβάστε τις τιμές και αντιδράστε στις αλλαγές
class MainActivity : AppCompatActivity() {
private val configReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) = applyConfig()
}
override fun onResume() {
super.onResume()
applyConfig() // picks up changes made while the app was in the background
registerReceiver(
configReceiver,
IntentFilter(Intent.ACTION_APPLICATION_RESTRICTIONS_CHANGED)
)
}
override fun onPause() {
unregisterReceiver(configReceiver)
super.onPause()
}
private fun applyConfig() {
val rm = getSystemService(Context.RESTRICTIONS_SERVICE) as RestrictionsManager
val config = rm.applicationRestrictions
val serverUrl = config.getString("server_url", "")
val allowOffline = config.getBoolean("allow_offline", false)
// Apply serverUrl and allowOffline to the app's settings here
}
}Η μετάδοση ACTION_APPLICATION_RESTRICTIONS_CHANGED παραδίδεται μόνο σε δέκτες που έχουν καταχωριστεί κατά τον χρόνο εκτέλεσης (runtime). Η εφαρμογή θα πρέπει επίσης να διαβάζει ξανά τη διαμόρφωση στο onResume(), ώστε να εφαρμόζονται οι αλλαγές που έγιναν ενώ βρισκόταν στο παρασκήνιο.
4. Δημοσίευση μέσω του διαχειριζόμενου Google Play
Μεταφορτώστε την εφαρμογή στο Google Play, ως ιδιωτική εφαρμογή για τον οργανισμό σας εάν δεν είναι δημόσια, ώστε το Play να μπορεί να διαβάσει το σχήμα και να εμφανίσει τη φόρμα στο MDM σας. Κάθε νέα έκδοση που προσθέτει ή μετονομάζει ένα κλειδί χρειάζεται νέα μεταφόρτωση.
Λίστα ελέγχου για προγραμματιστές
- Διατηρήστε τα κλειδιά σταθερά. Η μετονομασία του server_url καταστρέφει κάθε πολιτική που το ορίζει.
- Αποκρύψτε ένα πεδίο στη διεπαφή χρήστη όταν ορίζεται από τη διαμόρφωση, ώστε οι εργαζόμενοι να μην μπορούν να το παρακάμψουν.
- Διαχειριστείτε ομαλά την περίπτωση που ένα κλειδί είναι κενό, για παράδειγμα εμφανίζοντας ένα σαφές μήνυμα "επικοινωνήστε με το τμήμα IT".
- Μην απαιτείτε ποτέ μυστικό στη διαμόρφωση. Χρησιμοποιήστε την για να βρείτε τον διακομιστή και, στη συνέχεια, πραγματοποιήστε κανονικό έλεγχο ταυτότητας.
- Δοκιμάστε με την εφαρμογή TestDPC της Google σε μια συσκευή που δεν είναι εγγεγραμμένη στο MDM σας. Το TestDPC πρέπει να είναι η εφαρμογή διαχείρισης της συσκευής, οπότε δεν λειτουργεί σε συσκευή που ήδη διαχειρίζεται το MDM σας.
Συνήθεις ερωτήσεις αντιμετώπισης προβλημάτων
Η εφαρμογή δεν έχει φόρμα διαμόρφωσης στο πρόγραμμα επεξεργασίας πολιτικής μου.
Ο προγραμματιστής δεν έχει δημοσιεύσει σχήμα μέσω του Google Play ή η έκδοση στο Play προηγείται αυτού. Ελέγξτε την τεκμηρίωση του προμηθευτή ή ρωτήστε τον απευθείας. Για εσωτερικές εφαρμογές, επιβεβαιώστε ότι υπάρχει η καταχώριση meta-data στο manifest και ότι έχει μεταφορτωθεί η έκδοση με το σχήμα. Ένα κλειδί που προστέθηκε σε νέα έκδοση εμφανίζεται στη φόρμα μόνο αφού αυτή η έκδοση ανεβεί στο Google Play και υποβληθεί σε επεξεργασία.
Άλλαξα μια τιμή, αλλά η εφαρμογή εξακολουθεί να εμφανίζει την παλιά.
Ελέγξτε τα εξής με τη σειρά:
- Έχει συγχρονίσει η συσκευή την ενημερωμένη πολιτική; Ελέγξτε την τελευταία εμφάνιση.
- Επιβάλετε διακοπή και ανοίξτε ξανά την εφαρμογή. Εάν εμφανιστεί τώρα η νέα τιμή, η εφαρμογή διαβάζει τη διαμόρφωση μόνο κατά την εκκίνηση και δεν παρακολουθεί τη μετάδοση αλλαγής.
- Αν εξακολουθεί να μην εμφανίζεται, η εφαρμογή ίσως έχει αποθηκεύσει την παλιά τιμή στον δικό της χώρο. Η εκκαθάριση των δεδομένων της εφαρμογής το διορθώνει, αλλά διαγράφει ό,τι υπάρχει μόνο στη συσκευή, όπως σαρώσεις εκτός σύνδεσης που δεν έχουν συγχρονιστεί, οπότε κάντε πρώτα συγχρονισμό. Διαφορετικά, ο προγραμματιστής πρέπει να διορθώσει την εφαρμογή.
Η τιμή φτάνει, αλλά η εφαρμογή την αγνοεί.
Βεβαιωθείτε ότι το όνομα του κλειδιού και ο τύπος ταιριάζουν ακριβώς με το σχήμα. Τα κλειδιά διακρίνουν πεζά-κεφαλαία και ένα boolean που αποστέλλεται ως συμβολοσειρά δεν θα διαβαστεί ως boolean. Επίσης, ελέγξτε εάν η έκδοση της εφαρμογής στη συσκευή είναι παλαιότερη από εκείνη που εισήγαγε το κλειδί. Σε συσκευή με προφίλ εργασίας, ελέγξτε ότι ο εργαζόμενος άνοιξε το αντίγραφο εργασίας της εφαρμογής, που φέρει το σήμα με τον χαρτοφύλακα. Το προσωπικό αντίγραφο δεν λαμβάνει ποτέ τη διαμόρφωση.
Ορισμένες πολιτικές του Chrome λειτουργούν και άλλες όχι.
Δεν υποστηρίζεται κάθε πολιτική του Chrome Enterprise στο Android. Ελέγξτε την υποστήριξη πλατφόρμας για καθεμία στη λίστα πολιτικών του Chrome Enterprise και ελέγξτε την έκδοση του Chrome στη συσκευή.
Μπορώ να προωθήσω διαφορετική τιμή σε κάθε συσκευή;
Ναι, αλλά όχι από προεπιλογή. Χρησιμοποιήστε μεταβλητές διαμόρφωσης εάν η κονσόλα σας τις υποστηρίζει για το χαρακτηριστικό που χρειάζεστε, χωρίστε τις συσκευές σε μικρότερες πολιτικές ή κάντε την εφαρμογή να ανακτά ρυθμίσεις ανά συσκευή από το backend της. Δείτε το Βήμα 5.
Η διαμόρφωση εφαρμόστηκε, αλλά ο εργαζόμενος μπορεί ακόμα να επεξεργαστεί το πεδίο.
Το κλείδωμα ενός πεδίου είναι δουλειά της εφαρμογής, όχι του Android. Ζητήστε από τον προγραμματιστή να απενεργοποιήσει ή να αποκρύψει ρυθμίσεις που προέρχονται από διαχειριζόμενη διαμόρφωση.
Πώς μπορώ να κάνω δοκιμές χωρίς να επηρεάσω την παραγωγή;
Χρησιμοποιήστε μια αποκλειστική δοκιμαστική πολιτική και μία εγγεγραμμένη συσκευή. Για εσωτερικές εφαρμογές, οι προγραμματιστές μπορούν να χρησιμοποιήσουν το TestDPC προτού η εφαρμογή φτάσει καν στο MDM σας.
Επόμενα βήματα
Βασικά συμπεράσματα:
- Ο προγραμματιστής της εφαρμογής ορίζει τι μπορεί να διαμορφωθεί. Το MDM σας συμπληρώνει αυτά τα πεδία και τίποτα περισσότερο.
- Επιβεβαιώστε πρώτα την υποστήριξη, καταγράψτε τα κλειδιά και τους τύπους και δοκιμάστε σε μία συσκευή πριν από την ευρεία διάθεση.
- Οι κοινόχρηστες τιμές ανήκουν στην πολιτική. Οι τιμές ανά συσκευή χρειάζονται μεταβλητές, μικρότερα πεδία εφαρμογής ή αναζητήσεις από την πλευρά της εφαρμογής.
- Για εσωτερικές εφαρμογές, η προσθήκη ενός σχήματος απαιτεί μια μικρή, καλά τεκμηριωμένη αλλαγή και καταργεί το βήμα της μη αυτόματης ρύθμισης για τους εργαζομένους.
Ξεκινήστε αυτήν την εβδομάδα με την εφαρμογή που δημιουργεί τα περισσότερα αιτήματα ρύθμισης. Καταγράψτε τα κλειδιά της, δημιουργήστε μια δοκιμαστική πολιτική και επαληθεύστε την σε μία συσκευή. Στη συνέχεια, στείλτε την παραπάνω λίστα ελέγχου προγραμματιστή στην ομάδα που είναι υπεύθυνη για την εσωτερική σας εφαρμογή.
Εάν θέλετε να δοκιμάσετε αυτήν τη ροή με το Nomid MDM, η κάρτα της εφαρμογής στο πρόγραμμα επεξεργασίας πολιτικής ανοίγει τη διαχειριζόμενη διαμόρφωση κάθε εφαρμογής και το δωρεάν πρόγραμμα καλύπτει έως και 10 συσκευές χωρίς χρονικό περιορισμό. Αυτό είναι αρκετό για μια δοκιμαστική πολιτική και μια πιλοτική ομάδα. Η απομακρυσμένη πρόσβαση και το API δεν περιλαμβάνονται στο δωρεάν πρόγραμμα.
Συχνές ερωτήσεις (FAQ)
Τι είναι μια διαχειριζόμενη διαμόρφωση Android;
Είναι ένα σύνολο ρυθμίσεων κλειδιού-τιμής που ένας οργανισμός προωθεί σε μια εφαρμογή σε μια διαχειριζόμενη συσκευή Android. Παραδείγματα περιλαμβάνουν ένα URL διακομιστή, επιτρεπόμενους ιστότοπους ή επιλογές εναλλαγής λειτουργιών. Ο προγραμματιστής της εφαρμογής ορίζει τα διαθέσιμα πεδία σε ένα σχήμα που δημοσιεύεται μέσω του Google Play και το MDM στέλνει τις τιμές μέσω της πολιτικής συσκευής.
Πώς μπορώ να ξέρω εάν μια εφαρμογή υποστηρίζει app config στο Android Enterprise;
Προσθέστε την εφαρμογή σε μια δοκιμαστική πολιτική στο MDM σας και δείτε αν εμφανίζεται μια φόρμα διαμόρφωσης. Μπορείτε επίσης να ελέγξετε την επιχειρησιακή τεκμηρίωση του προμηθευτή ή να ρωτήσετε την ομάδα υποστήριξής του ποια κλειδιά διαχειριζόμενης διαμόρφωσης εκθέτει η εφαρμογή.
Τι είναι το app_restrictions.xml;
Είναι το αρχείο XML στους πόρους μιας εφαρμογής Android όπου ο προγραμματιστής δηλώνει το σχήμα της διαχειριζόμενης διαμόρφωσης: το κλειδί, τον τύπο, τον τίτλο και την προεπιλεγμένη τιμή κάθε ρύθμισης. Στο αρχείο γίνεται αναφορά στο manifest της εφαρμογής και το Google Play το διαβάζει κατά τη μεταφόρτωση της εφαρμογής.
Εφαρμόζεται αμέσως μια αλλαγή στη διαχειριζόμενη διαμόρφωση;
Η συσκευή τη λαμβάνει στον επόμενο συγχρονισμό πολιτικής της. Το αν η εφαρμογή θα την εφαρμόσει αμέσως εξαρτάται από την ίδια την εφαρμογή. Οι εφαρμογές που παρακολουθούν τη μετάδοση αλλαγής περιορισμών (restrictions-changed broadcast) ενημερώνονται κατά την εκτέλεση, ενώ άλλες διαβάζουν τη διαμόρφωσή τους μόνο στην επόμενη εκκίνηση.
Try it yourself — start free
Put these steps into practice on Nomid MDM's free plan for up to 10 devices.
Start for Free