Ar teisingi „Android“ vartotojoManager.isUserAGoat () naudojimo atvejai?

Pažvelgiau į naują „ Android“ 4.2 . Įdiegtą API. Žvelgiant į „ UserManager klasę UserManager aš suskaldiau tokį metodą:

 public boolean isUserAGoat() 

Naudojamas nustatyti, ar skambinantysis vartotojas yra teleportuojamas.

Grąžina, ar vartotojas, kuris skambina, yra ožka.

Kaip ir kada tai turėtų būti naudojama?

3288
14 нояб. sukūrė Ovidiu Latcu 14 nov. 2012-11-14 11:34 '12, 11:34, 2012-11-14 11:34
@ 13 atsakymų

Remiantis jų šaltiniu , šis metodas grįžo false kol jis buvo pakeistas API 21.

  public boolean isUserAGoat() { return false; } 

Atrodo, kad šis metodas mums kaip kūrėjams realiai nenaudojamas. Kažkas anksčiau pareiškė, kad tai gali būti Velykų kiaušinis .

Programoje API 21, įgyvendinimas buvo pakeistas, siekiant patikrinti, ar įdiegta programa yra com.coffeestainstudios.goatsimulator

  public boolean isUserAGoat() { return mContext.getPackageManager() .isPackageAvailable("com.coffeestainstudios.goatsimulator"); } 

Čia yra šaltinis ir pokyčiai .

1602
14 нояб. atsakymas pateikiamas meh 14 lapkričio. 2012-11-14 11:40 '12 11:40 2012-11-14 11:40

Nežinau, ar tai buvo „oficialaus“ naudojimo atvejis, tačiau toliau pateikiamas įspėjimas „Java“ (kuris gali papildomai sukurti kompiliavimo klaidas, jei jos yra sumaišytos su return , kurios veda prie nepasiekiamo kodo):

 while (1 == 2) { // Note that "if" is treated differently System.out.println("Unreachable code"); } 

Tačiau tai teisėta:

 while (isUserAGoat()) { System.out.println("Unreachable but determined at runtime, not at compile time"); } 
border=0

Taigi, aš dažnai pastebiu, kad rašau kvailą naudingumo metodą, kad greičiausiai nutylintumėte kodo bloką, o tada, kai baigiu derinimą, surasiu visus skambučius į jį, taigi, jei įgyvendinimas nepasikeis, jį galima naudoti.

JLS nurodo, if (false) nekelia „nepasiekiamo kodo“ dėl to, kad jis nutraukia debug flags palaikymą, t.y. iš esmės šis precedentas (h / t @auselen). (pvz., static final boolean DEBUG = false; ).

Kai pakeitiau while if pakeitiau, sukuriau neaiškesnį naudojimo atvejį. Manau, kad jūs galite išjungti savo IDE, pvz., „Eclipse“, tokiu elgesiu, tačiau šis redagavimas ateityje bus 4 metai, ir neturiu „Eclipse“ žaisti.

943
14 нояб. atsakymas pateikiamas djechlin lapkritis 14 2012-11-14 17:47 '12, 17:47, 2012-11-14 17:47

Atrodo, kad tai yra vidinis pokštas „Google“. Jis taip pat rodomas „Google Chrome“ užduočių tvarkyklėje. Jis neturi jokio kito tikslo, išskyrus kai kuriuos inžinierius, kurie mano, kad tai juokinga. Koks tikslas savaime, jei norite.

  • „Chrome“ atidarykite „Task Manager“ naudodami „ Shift + Esc“ .
  • Dešiniuoju pelės klavišu spustelėkite, jei norite pridėti stulpelį, skirtą Goats Teleported .
  • Įdomu.

Yra net didžiulė „Chromium“ klaidų ataskaita apie per daug teleportuotų ožkų .

2019

725
14 нояб. Atsakymą pateikė user479870 14 lapkričio. 2012-11-14 12:03 '12, 12:03, 2012-11-14 12:03

Be @djechlin atsakymo (geras atsakymas, beje!), Šį funkcijų skambutį taip pat galima naudoti kaip manekeno kodą, kad būtų galima išsaugoti lūžio tašką IDE, kai norite sustabdyti tam tikrą iteraciją ar konkretų rekursinį skambutį, pavyzdžiui:

2019

268
21 нояб. atsakymą pateikė higuaro lapkričio 21 d. 2012-11-21 19:55 '12 at 7:55 pm 2012-11-21 19:55

Kiekvienoje „Android“ versijoje yra juokingas metodas / pastovus / bet koks.

Vienintelis praktinis naudojimas, kurį aš kada nors matiau, buvo paskutinis skambutis „ Google I / O“ konkursui, kuriame jie paklausė, kokia yra tam tikra versija, norėdami pamatyti, ar dalyviai skaito API versijos ataskaitą kiekvienai versijai. Be to, konkurse buvo programavimo problemų, tačiau apskritai buvo keletas nedidelių dalykų, kurie gali būti automatiškai klasifikuojami, kad būtų galima gauti reikiamą kiekį medžiagų, kurias būtų lengviau patikrinti.

129
14 нояб. Atsakymą pateikė Lance Nanek lapkričio 14 d. 2012-11-14 20:26 '12 8:26 pm 2012-11-14 20:26

Kalbos atpažinimo metu vartotojai skirstomi į ožkas ir avis.

Pavyzdžiui, čia , 89 psl.

Avys yra žmonės, kuriems kalbų atpažinimas veikia ypač gerai, o ožkos - tai žmonės, kuriems ji dirba labai prastai. Tik balso atpažinimo priemonė žino, kas juos skiria. Žmonės negali nuspėti, kuris balsas bus lengvai atpažįstamas ir kurio nebus. Geriausia politika yra sukurti sąsają taip, kad ji galėtų tvarkyti visų rūšių balsus bet kurioje laikmenoje.

Gali būti, kad ateityje planuojama pažymėti „Android“ naudotojus kaip ožkas, kad būtų galima pritaikyti kalbos atpažinimo variklį ožkų poreikiams. ;-)

118
31 мая '13 в 12:33 2013-05-31 12:33 atsakymas suteiktas rainer198 gegužės 31 d. 12:33 2013-05-31 12:33

„Google“ labai mėgsta ožkas ir ožkas. Yra ir ankstesnių stekų perpildymo ataskaitų .

Kaip minėta ankstesniuose pranešimuose, ji taip pat egzistuoja „Chrome“ užduočių tvarkyklėje ( pirmą kartą ji atsirado 2009 m. Lauke ):

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

Ir tada „Windows“, „Linux“ ir „Mac“ versijose „Chrome“ 2010 m. Pradžioje ). „Teleportuotų ožkų“ skaičius iš tikrųjų yra atsitiktinis :

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

Kitos „Google“ ožkų nuorodos apima:

Ankstyviausias ožkų ir „Google“ santykis, kaip galiu spręsti, priklauso originaliame dienoraštyje „Pjauti su ožkomis“.

Galime tvirtai manyti, kad tai tik Velykų kiaušinis ir neturi jokio realaus naudojimo, išskyrus grįžimą į false .

112
15 нояб. atsakymą pateikė rickyduck 15 nov. 2012-11-15 13:33 '12 13:33 2012-11-15 13:33

Pradedant nuo API 21 (pirmasis „Android 5.0“ / „Lollipop SDK“) , nustatoma, ar programa „ Goat Simulator“ bus įdiegta :

  public boolean isUserAGoat() { return mContext.getPackageManager() .isPackageAvailable("com.coffeestainstudios.goatsimulator"); } 

Tai turėtų aiškiai parodyti, kad pasiūlymas djechlin naudoti jį kaip nemokamą, if (false) be įspėjimo yra potencialiai katastrofiška strategija. Kas anksčiau grįžo false kiekvienam įrenginiui, dabar grąžina akivaizdžią atsitiktinę vertę: jei kodas buvo pakankamai palaidotas kode, gali prireikti daug laiko, kad išsiaiškintumėte, iš kur atsiranda naujos klaidos.

Apatinė eilutė: jei nekontroliuojate metodo įgyvendinimo ir nenusprendžiate jo naudoti kitiems tikslams, nei nurodytieji API dokumentuose, susiduriate su problemomis.

108
20 окт. Mark Whitaker atsakymas, pateiktas spalio 20 d 2014-10-20 13:00 '14, 13:00 2014-10-20 13:00

Yra panašus skambutis isUserAMonkey() , kuris grąžinamas tiesa, jei naudojamas MonkeyRunner įrankis . SDK paaiškinimas yra toks smalsus kaip šis.

 public static boolean isUserAMonkey(){} 

Grąžinama true jei vartotojo sąsaja šiuo metu veikia beždžionėje.

Čia yra šaltinis.

Tikiuosi, kad tai bus pridėta, kol laukia „ Strange Function“ įrankio „ActivityManager“: isUserAMonkey. Ką tai reiškia? .

99
17 нояб. Atsakymas pateikiamas KDEx 17 lapkričio. 2012-11-17 00:33 '12 0:33 2012-11-17 00:33
30 сент. atsakymą pateikė Sergio Carneiro apie 30 sep. 2016-09-30 17:00 „16, 17 val. 2016-09-30 17:00

Juokingi kiaušiniai.
„Ubuntu Chrome“ versijoje užduočių tvarkyklėje („ shift + esc“ ) dešiniuoju pelės klavišu galite pridėti mokslinę stulpelį, kuris italų kalba bus „Capre Teletrasportate“ (Teleportuotos ožkos).

Juokinga teorija apie tai čia .

32
06 февр. atsakymas pateiktas jc 06 Feb 2014-02-06 13:35 '14 at 13:35 2014-02-06 13:35

Žr. Žemiau šaltinio kodą:

  public boolean isUserAGoat() { return mContext.getPackageManager() .isPackageAvailable("com.coffeestainstudios.goatsimulator"); } 
1
28 сент. Koustuv Ganguly atsakymas rugsėjo 28 d 2018-09-28 16:49 '18 at 4:49 PM 2018-09-28 16:49

Tai nėra vidinis pokštas. Matyt, tai tik bandomoji programa „ Goat Simulator - Coffee Stain Studios“

Jei turite įdiegtą ožkų simuliatorių, jūsų ožką. Jei jis nėra įdiegtas, jūs nesate ožka.

Manau, kad tai buvo asmeninis vieno iš kūrėjų eksperimentas, greičiausiai socialinis eksperimentas ieškant žmonių, turinčių bendrų interesų.

0
17 нояб. atsakymas pateikiamas Zillinium lapkričio 17 d 2018-11-17 22:11 '18, 10:11 pm 2018-11-17 22:11

Kiti klausimai apie „ žymes arba Užduoti klausimą