Android UserManager.isUserAGoat () üçün düzgün istifadə halları?

Android 4.2-də təqdim olunan yeni API-yə baxdım. UserManager sinifinə UserManager , aşağıdakı üsulla stumbleddim:

 public boolean isUserAGoat() 

Zəng edən istifadəçi teleported olub olmadığını müəyyən etmək üçün istifadə olunur.

Bu zəng edən istifadəçi bir keçi olub olmadığını qaytarır.

Bunu necə və nə vaxt istifadə edilməlidir?

3288
14 нояб. Ovidiu Latcu tərəfindən qoyulmuş 14 noyabr. 2012-11-14 11:34 '12 at 11:34 2012-11-14 11:34
@ 13 cavab

Kaynaklarına əsaslanaraq, bu üsul API 21-ə dəyişməyincə, false oldu.

  public boolean isUserAGoat() { return false; } 

Göründüyü kimi, metodun inkişaf etdirilməsi üçün bizdə heç bir real istifadə yoxdur. Biri daha əvvəl Pasxa yumurtası ola biləcəyini ifadə etmişdi.

API 21-də tətbiq quraşdırılmış proqramın varlığını yoxlamaq üçün dəyişdi. com.coffeestainstudios.goatsimulator

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

Burada mənbədəyişiklik var .

1602
14 нояб. Cavab verilir 14 noyabr. 2012-11-14 11:40 '12 saat 11:40 'da 2012-11-14 11:40

Bu "rəsmi" istifadəyə aid olub-olmadığını bilmirəm amma aşağıdakılar Java-yə xəbərdarlıq edir (əlavə olaraq, əldə edilə bilən kodu gətirib çıxaran return qarışıq olduqda kompilyasiya səhvləri əlavə edə bilərsiniz):

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

Lakin, bu qanuni:

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

Beləliklə, tez-tez bir kodun blokunu susdurmaq üçün ən sürətli şəkildə axmaq kömək metodu yazdığımı görürəm, sonra isə diskontlaşdırma işini başa çatdığımda bütün çağırışları tapıram, belə ki tətbiq dəyişməzsə, bunun üçün istifadə edilə bilər.

JLS göstərir if (false) "qeydə alınmayan kod" deyilmir, çünki bu, debug bayraqları üçün dəstəyi pozur, yəni. əsasən bu presedent (h / t @auselen). (məsələn, static final boolean DEBUG = false; ).

Daha qorusun bir vəziyyət yaratmaqla birlikdə əvəzləndim. Hesab edirəm ki, bu davranışı ilə IDE-i silmək mümkündür, amma bu düzəliş gələcəkdə 4 ildir və mən oynamaq üçün Eclipse yoxdur.

943
14 нояб. cavab 14 noyabr djechlin verilir 2012-11-14 17:47 '12 at 17:47 2012-11-14 17:47

Bu, Google-da daxili zarafat kimi görünür. Həmçinin Google Chrome Task Manager-da göstərilir. Bəzi mühəndislərdən başqa heç bir məqsədi yoxdur. İstəsəniz öz içində nə bir hədəf var.

  • Chrome'da, Shift + Esc istifadə edərək, Görev Yöneticisi'ni açın.
  • Goats Teleported sütunu əlavə etmək üçün sağ basın.
  • Wonder.

Hətta bir çox teleported keçi haqqında böyük Chromium səhv hesabat var.

2019

725
14 нояб. Cavab 14 noyabr tarixində user479870 tərəfindən verilmişdir. 2012-11-14 12:03 '12 at 12:03 2012-11-14 12:03

@Djechlin cavabına əlavə olaraq (yaxşı cavab, yəqin ki!) Bu funksiya çağırışı, müəyyən bir təkrarlama və ya müəyyən bir təkrarlanan çağırışda dayandırmaq istədiyiniz zaman IDE-də bir kəsmə nöqtəsi saxlamaq üçün saxta kod kimi istifadə edilə bilər, məsələn:

2019

268
21 нояб. cavab 21 noyabr tarixində higuaro tərəfindən verilir. 2012-11-21 19:55 '12 at 7:55 pm 2012-11-21 19:55

Android hər versiyası komik bir üsul / sabit / nədir.

Gördüyüm tək praktiki istifadə Google I / O müsabiqəsindəki son çağırışda idi və onlar yarışmacılar hər versiyası üçün API diff hesabını oxumaq üçün müəyyən bir versiyaya nə cavab verdilər. Müsabiqədə proqramlaşdırma problemləri də var idi, lakin ümumiyyətlə, materialların miqdarını yoxlamaq daha məqbul miqdarlara çatmaq üçün avtomatik olaraq təsnifləşdirilə biləcək kiçik bir şeylər var idi.

129
14 нояб. Cavab Lance Nanek tərəfindən 14 noyabr tarixində verilir. 2012-11-14 20:26 '12 at 8:26 pm 2012-11-14 20:26

Nitq qəbulunda istifadəçilər keçi və qoyunlara bölünür.

Məsələn, burada səhifə 89 :

Qoyunlar danışmağın tanınması olduqca yaxşı işləyir və keçilər çox az iş görən insanlardır. Yalnız bir səs tanımaçı onları ayırdığını bilir. İnsanlar kimin səsini asanlıqla tanıdığını və kimin istəyəcəyini təxmin edə bilmir. Ən yaxşı siyasət hər hansı bir mühitdə hər cür səsi idarə edə bilmək üçün interfeysin dizaynıdır.

Gələcəkdə keçilərin ehtiyacları üçün çıxış tanıma motorunu fərdiləşdirmək üçün Android istifadəçilərini keçi olaraq qeyd etmək mümkündür. ;-)

118
31 мая '13 в 12:33 2013-05-31 12:33 Cavab yağmur verilir198 May 31 '13 12:33 2013-05-31 12:33

Google, keçi və keçi Pasxa yumurtaları üçün güclü bir təvəccöh göstərir. Daha əvvəlki yığma daşqın hesabatları da olmuşdur.

Əvvəlki yazıda qeyd edildiyi kimi, Chrome Task Manager da mövcuddur ( ilk dəfə 2009-cu ildə yabanı göründü ):

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

2010-cu ilin əvvəlində Chrome-un Windows, Linux və Mac versiyalarında ). "Keçilər teleported" sayının əslində təsadüfüdür :

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

Digər Google keçid bağlantıları bunlardır:

Keçi və Google ən erkən oranı, "Mən keçi ilə Çayır" əsl blogunda hökm edə bilərəm.

Təhlükəsiz olaraq bu Pasxa yumurtası olduğunu və false qayıdışı istisna olmaqla, heç bir real istifadə etməyəcəyini düşünə bilərik.

112
15 нояб. cavab rickyduck 15 nov tərəfindən verilir . 2012-11-15 13:33 '12 'də saat 13:33' də 2012-11-15 13:33

API 21 (ilk Android 5.0 / Lollipop SDK) ilə başlayaraq , bu Keçi Simulator tətbiqinin quraşdırılacaq olub olmadığını müəyyənləşdirir:

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

Bu djechlin'in xəbərdarlıq etmədən pulsuz olaraq istifadə etməsi təklifinin potensial olaraq fəlakətli bir strategiyadır. Əvvəllər hər cihaz üçün false döndükdə artıq müəyyən bir təsadüfi dəyər qaytarır: kodda kifayət qədər dərinliyə salınmışsa, yeni səhvlərinizin nereden gəldiyini anlamaq uzun müddətə gələ bilər.

Aşağı xətt: Əgər metodun tətbiqini nəzarət etməsəniz və onu API sənədlərində göstərilənlərdən başqa məqsədlər üçün istifadə etməyinizə qərar verməsəniz, problemlərlə qarşılaşırsınız.

108
20 окт. Mark Whitaker tərəfindən 20 oktyabrda cavab verildi 2014-10-20 13:00 '14 saat 13:00 'da 2014-10-20 13:00' də

MonkeyRunner alətindən istifadə edildikdə, həqiqətə dönən oxşar bir zəng isUserAMonkey() . SDK-nın izahı bu qədər maraqlıdır.

 public static boolean isUserAMonkey(){} 

İstifadəçi interfeysi hazırda bir meymunda çalışırsa, true olur.

İşdə mənbə.

Mən ActivityManager-da Qəribə Funksiya alətini gözləyərkən bu əlavə olunmasını gözləyirəm : isUserAMonkey. Bu nə deməkdir, onun istifadəsi nədir? .

99
17 нояб. Cavab KDEx 17 noyabrda verilir. 2012-11-17 00:33 '12 at 0:33 2012-11-17 00:33
30 сент. Cavab Sergio Carneiro tərəfindən 30 sentyabrda verilir. 2016-09-30 17:00 '16 'da saat 17.00 ' də başlayacaq

Funny Pasxa yumurtası.
Ubuntu Chrome versiyasında, tapşırıq menecerində ( shift + esc ) sağ tıklayarak İtalyan versiyasında "Capre Teletrasportate" (Teleported Goats) adlı elmi bir sütun əlavə edə bilərsiniz.

Buradakı bu barədə möhtəşəm nəzəriyyə.

32
06 февр. cavab cc 06 fevral 2014-02-06 13:35 '14 saat 13:35 2014-02-06 13:35

Aşağıda mənbə koduna baxın:

  public boolean isUserAGoat() { return mContext.getPackageManager() .isPackageAvailable("com.coffeestainstudios.goatsimulator"); } 
1
28 сент. Koustuv Ganguly tərəfindən verilmiş cavab Sep 28 2018-09-28 16:49 '18 at 16:49 2018-09-28 16:49

Bu daxili zarafat deyil. Göründüyü kimi, bu keçi simulyatoru - Coffee Stain Studios üçün yalnız bir test proqramıdır

Əgər keçi simulyatoru quraşdırılıbsa, sizin keçi. Quraşdırılmırsa, keçi deyilsiniz.

İnanıram ki, bu, inkişaf etməkdə olanlardan birinin fərdi təcrübəsi idi, çox güman ki, ümumi maraqları olan insanları tapmaq üçün sosial təcrübə.

0
17 нояб. cavab Zillinium noyabr 17 verilir 2018-11-17 22:11 '18 saat 10:11 'da 2018-11-17 22:11

tags ilə bağlı digər suallar və ya bir sual