java - Casi di utilizzo appropriati per Android UserManager.isUserAGoat ()?




6 Answers

Dalla loro source , il metodo utilizzato per restituire false fino a quando non è stato modificato in API 21.

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 * @return whether the user making this call is a goat 
 */
public boolean isUserAGoat() {
    return false;
}

Sembra che il metodo non abbia reale utilità per noi come sviluppatori. Qualcuno ha precedentemente affermato che potrebbe trattarsi di un uovo di Pasqua .

Nell'API 21 l'implementazione è stata modificata per verificare se è presente un'app installata con il pacchetto com.coffeestainstudios.goatsimulator

/**
 * Used to determine whether the user making this call is subject to
 * teleportations.
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method can
 * now automatically identify goats using advanced goat recognition technology.</p>
 *
 * @return Returns true if the user making this call is a goat.
 */
public boolean isUserAGoat() {
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

Ecco il link sorgente

Stavo guardando le nuove API introdotte in Android 4.2 . Osservando la classe UserManager mi sono imbattuto nel seguente metodo:

public boolean isUserAGoat()

Utilizzato per determinare se l'utente che effettua questa chiamata è soggetto a teletrasporto.

Restituisce se l'utente che effettua questa chiamata è una capra.

Come e quando dovrebbe essere usato?




Questo sembra essere uno scherzo di Google. È anche presente nel task manager di Google Chrome. Non ha uno scopo, a parte alcuni ingegneri che lo trovano divertente. Che è uno scopo di per sé, se vuoi.

  1. In Chrome, apri Gestione attività con Shift + Esc .
  2. Fare clic con il tasto destro per aggiungere la colonna Goats Teleported .
  3. Meravigliarsi.

C'è anche un enorme bug bug su Chromium su troppe capre teletrasportate .

Il seguente snippet di codice sorgente Chromium viene rubato dai commenti HN .

int TaskManagerModel::GetGoatsTeleported(int index) const {
  int seed = goat_salt_ * (index + 1);
  return (seed >> 16) & 255;
}



C'è un metodo chiamato divertente / costante / qualunque sia in ogni versione di Android.

L'unico utilizzo pratico che ho mai visto è stato nel concorso Last Call per Google I / O Contest in cui è stato chiesto che cosa fosse per una versione specifica, per verificare se i concorrenti leggessero il rapporto diffettivo API per ogni versione. Il concorso aveva anche problemi di programmazione, ma in generale alcune banalità che potevano essere classificate automaticamente prima di ottenere il numero di sottomissioni a importi ragionevoli che sarebbero più facili da controllare.




Google ha una grande passione per le uova di Pasqua di capra e capra. Ci sono stati anche precedenti messaggi su di esso .

Come è stato menzionato nei post precedenti, esiste anche all'interno del task manager di Chrome ( è apparso per la prima volta in natura nel 2009 ):

<message name="IDS_TASK_MANAGER_GOATS_TELEPORTED_COLUMN" desc="The goats teleported column">
    Goats Teleported
</message>

E poi in Windows, nelle versioni Linux e Mac di Chrome all'inizio del 2010 ). Il numero di "Goat Teleported" è in effetti casuale :

 int TaskManagerModel::GetGoatsTeleported(int index) const {
     int seed = goat_salt_ * (index + 1);
     return (seed >> 16) & 255;
 }

Altri riferimenti di Google alle capre includono:

La prima correlazione tra le capre e Google appartiene al post sul blog originale "Falciare le capre", per quanto ne so.

Possiamo tranquillamente supporre che si tratta semplicemente di un uovo di Pasqua e non ha alcun utilizzo nel mondo reale, tranne che per restituire false .




Esiste una chiamata simile, isUserAMonkey() , che restituisce true se viene utilizzato lo strumento MonkeyRunner . La spiegazione dell'SDK è altrettanto curiosa di questa.

public static boolean isUserAMonkey(){}     

Restituisce true se l'interfaccia utente viene attualmente incasinata da una scimmia.

Here la fonte.

Mi aspetto che questo sia stato aggiunto in previsione di un nuovo tool SDK chiamato qualcosa con una capra e sarà effettivamente funzionale per testare la presenza di quello strumento.

Vedi anche una domanda simile, Strana funzione in ActivityManager: isUserAMonkey. Cosa significa questo, qual è il suo uso? .




Uovo di Pasqua divertente.
Nella versione Ubuntu di Chrome, in Task Manager ( shift + esc ), con il tasto destro puoi aggiungere una colonna fantascientifica che nella versione italiana è "Capre Teletrasportate" (Teleported Goats).

Una divertente teoria a riguardo è here .




Related

java android usermanager