Έχετε παρατηρήσει ότι το παράθυρο διαλόγου έντασης ήχου στο Android σας χρειάζεται 20 δευτερόλεπτα για να εξαφανιστεί, εκτός εάν πατήσετε την οθόνη με μη αυτόματο τρόπο; Να γιατί συμβαίνει αυτό.
Έχετε παρατηρήσει ότι το παράθυρο διαλόγου έντασης που εμφανίζεται όταν πατάτε τα κουμπιά έντασης διαρκεί λίγο πολύ θέλει να εξαφανιστεί από μόνο του; Όταν λάβατε για πρώτη φορά το τηλέφωνό σας Android, το παράθυρο διαλόγου έντασης θα παραβλεφόταν αυτόματα μετά από λίγα δευτερόλεπτα χωρίς την παρέμβασή σας. Στη συνέχεια, κάποια στιγμή τις τελευταίες ημέρες, εβδομάδες ή μήνες, θα χρειαζόταν πολύς χρόνος για να φύγει εκτός και αν πατήσετε στην οθόνη σας. Εάν αντιμετωπίζετε αυτό το πρόβλημα και σας εξοργίζει, δεν είστε μόνοι.
Σε αυτό το άρθρο, θα εξηγήσουμε τι συμβαίνει και γιατί συμβαίνει, ώστε να μπορείτε είτε να διορθώσετε το πρόβλημα μόνοι σας είτε να στείλετε αυτό το άρθρο σε έναν προγραμματιστή ώστε να το διορθώσει. Ας περιγράψουμε πρώτα ποιο ακριβώς είναι το πρόβλημα, ώστε να είναι σαφές ότι αναφερόμαστε στο ίδιο πρόβλημα που αντιμετωπίζετε.
Το πρόβλημα
Πατήστε το κουμπί έντασης στο smartphone ή το tablet Android για να αλλάξετε την ένταση, αλλά την ένταση Το παράθυρο διαλόγου που εμφανίζεται χρειάζεται πολύ χρόνο για να φύγει από μόνο του, εκτός εάν πατήσετε στην οθόνη για να το κάνετε εξαφανίζομαι. Πόσο καιρό παραμένει ανοιχτό το παράθυρο διαλόγου έντασης; Ακριβώς 20 δευτερόλεπτα.
Πιστώσεις: /u/ConeCandy
Ένα δημοφιλές νήμα στο /r/ του RedditGooglePixel Το subreddit είχε πολλούς χρήστες να φωνάζουν ότι αντιμετώπιζαν αυτό το πρόβλημα. Ωστόσο, δεν είχαν όλοι αυτό το πρόβλημα. Ορισμένοι χρήστες δήλωσαν ότι οι διάλογοι έντασης ήχου παρέμειναν στην οθόνη μόνο για 3 δευτερόλεπτα, κάτι που είναι η φυσιολογική συμπεριφορά. Τι προκαλούσε λοιπόν αυτό το ζήτημα; Για τους περισσότερους χρήστες σε αυτό το νήμα, αποδεικνύεται ότι ο λόγος ήταν μια εφαρμογή που ονομάζεται Signal Spy - αν και ορισμένοι χρήστες σε αυτό το νήμα είπαν ότι και άλλες εφαρμογές προκαλούν αυτήν τη συμπεριφορά.
Τιμή: Δωρεάν.
3.9.
Το Signal Spy είναι μια εφαρμογή που είναι δημοφιλής μεταξύ των συνδρομητών της υπηρεσίας Project Fi της Google. Οι χρήστες του Project Fi αγαπούν την εφαρμογή επειδή υποστηρίζει την ανάλυση της τρέχουσας συνδεσιμότητας του δικτύου σας και υποστηρίζει την αυτόματη εναλλαγή μεταξύ Sprint και T-Mobile. Το καλύτερο κομμάτι? Δεν χρειάζεται πρόσβαση root για εναλλαγή μεταξύ των δικτύων. Το Signal Spy χρησιμοποιεί μια υπηρεσία προσβασιμότητας (μια υπηρεσία που χρησιμοποιεί τα API προσβασιμότητας του Android που χρησιμοποιούνται συνήθως για την παροχή βοήθειας στους χρήστες με αναπηρίες, αλλά χρησιμοποιούνται επίσης σε εκατοντάδες κανονικές εφαρμογές) για αυτόματη εναλλαγή μεταξύ παρόχων εισάγοντας τον κωδικό κλήσης συντομεύσεις.
Η ικανότητα του Signal Spy να κάνει αυτόματη εναλλαγή μεταξύ παρόχων στο Project Fi είναι απίστευτα χρήσιμη, αλλά είναι επίσης ο λόγος που συμβαίνει το πρόβλημα διαλόγου έντασης ήχου του Android. Το ένα κοινό χαρακτηριστικό μεταξύ του Signal Spy και των άλλων εφαρμογών όπως το LastPass, το Fingerprint Gestures, το Zoho Vault, το Amazon Assistant και άλλες εφαρμογές που προκαλούν αυτό το πρόβλημα είναι ότι χρησιμοποιήστε μια υπηρεσία προσβασιμότητας. Η μετάβαση στις Ρυθμίσεις --> Προσβασιμότητα και η απενεργοποίηση κάθε υπηρεσίας προσβασιμότητας μία προς μία είναι ένας τρόπος επίλυσης αυτού του προβλήματος. Γιατί, λοιπόν, μόνο οι Υπηρεσίες προσβασιμότητας ορισμένων εφαρμογών προκαλούν αυτό το ζήτημα; TaskerΤο, για παράδειγμα, δεν αντιμετωπίζει αυτό το ζήτημα, ούτε και το δικό μας Χειρονομίες πλοήγησης εφαρμογή. Εσείς και πολλοί άλλοι στο Google Issue Tracker μπορεί να πιστεύει ότι είναι σφάλμα, αλλά στην πραγματικότητα δεν είναι - είναι εξ ολοκλήρου σχεδιαστικά.
Η εξήγηση
Όπως ανακαλύψαμε κατά την ανάπτυξη της εφαρμογής Navigation Gestures, το πρόβλημα προκύπτει όταν μια Υπηρεσία Προσβασιμότητας διαθέτει προσβασιμότηταΤύπος ανατροφοδότησης οριστεί σε οτιδήποτε άλλο εκτός από FEEDBACK_GENERIC. Όταν ρυθμίσουμε την Υπηρεσία Προσβασιμότητας να χρησιμοποιεί το FEEDBACK_HAPTIC, το παράθυρο διαλόγου έντασης θα παραμείνει στην οθόνη για 20 δευτερόλεπτα. Όταν το ρυθμίσουμε σε FEEDBACK_GENERIC, το παράθυρο διαλόγου έντασης παραμένει στην οθόνη για 3 δευτερόλεπτα.
Ο λόγος που συμβαίνει αυτό οφείλεται σε δύο μεθόδους στο υλοποίηση διαλόγου τόμου στην ΑΟΣΠ. Η πρώτη μέθοδος που ονομάζεται computeFeedbackEnabled ελέγχει εάν υπάρχουν ενεργοποιημένες υπηρεσίες προσβασιμότητας που είναι "μη γενικές". Εάν ισχύει, τότε το boolean mFeedbackEnabled ορίζεται σε true. Στη δεύτερη μέθοδο, computeTimeoutH, εάν το mFeedbackEnabled επιστρέψει true τότε το χρονικό όριο του διαλόγου έντασης ορίζεται στα 20 δευτερόλεπτα, διαφορετικά ορίζεται στα 3 δευτερόλεπτα.
Αυτά ταμεθόδους προστέθηκαν στην έκδοση Android 6.0 Marshmallow και επομένως αυτό το ζήτημα διαλόγου τόμου επηρεάζει όλες τις εκδόσεις Android από το Android Marshmallow, συμπεριλαμβανομένων των Android Nougat, Android Oreo και Android Pie. Δεν είμαστε απόλυτα σίγουροι Γιατί Αυτές οι μέθοδοι προστέθηκαν καθώς οι περιγραφές δέσμευσης δεν ήταν σαφείς. Αν έπρεπε να διακινδυνεύσω να μαντέψω γιατί υπάρχει αυτή η συμπεριφορά, θα έλεγα ότι είναι για να βοηθήσω τους χρήστες με ορισμένες disability χειρίζεται το παράθυρο διαλόγου έντασης με φωνή ή άλλες εισόδους επειδή το προεπιλεγμένο χρονικό όριο των 3 δευτερολέπτων είναι πολύ σύντομο για αυτούς. Εάν το Android εντοπίσει ότι ένας χρήστης χρησιμοποιεί μια υπηρεσία προσβασιμότητας συγκεκριμένου τύπου, επεκτείνει αυτόματα τη διάρκεια παραμονής του διαλόγου έντασης ήχου, ώστε ο χρήστης να έχει περισσότερες πιθανότητες να αλληλεπιδράσει μαζί του. Ανεξάρτητα, είναι ξεκάθαρο ότι αυτό το ζήτημα είναι όχι ένα σφάλμα αλλά είναι μάλλον εντελώς από το σχεδιασμό. Δυστυχώς, αυτό σημαίνει ότι δεν υπάρχει καμία "διόρθωση" για το πρόβλημα εκτός από το να πείσει την Google να αλλάξει αυτή την απόφαση ή να πείσει τους προγραμματιστές εφαρμογών να μην χρησιμοποιούν μη γενικούς τύπους σχολίων στην προσβασιμότητα τους Υπηρεσίες.
Οι προγραμματιστές του Signal Spy έχουν ήδη επιβεβαιώσει ότι έχουν επιδιορθώσει το πρόβλημα στην επόμενη έκδοση beta, οπότε αν αντιμετωπίσετε το πρόβλημα και θέλετε να δείτε αν επιδιορθώθηκε, θα πρέπει να κατευθύνει τους προγραμματιστές εφαρμογών προς αυτό το άρθρο, ώστε να γνωρίζουν το πρόβλημα (καθώς πολλοί δεν το γνωρίζουν.) Εάν μια μελλοντική έκδοση του Android αλλάξει αυτήν τη συμπεριφορά, θα σας ενημερώσουμε όλους ξέρω. Τουλάχιστον τώρα γνωρίζετε αυτό το ζήτημα και τι το προκαλεί, ώστε να καταλάβετε ποιες εφαρμογές προκαλούν αυτό το πρόβλημα για εσάς.