我正在寻找在Android 4.2中介绍的新API。虽然看着Usermanager类,我遇到了以下方法:
5如果可以用来避免一些Java警告,作为复活节彩蛋,作为一个测试,看看谁读过API。和它'参考铬中的复活节彩蛋。 - Dorian.
这可能与谷歌使用山羊作为山景总部的割草机有关。 - John Isaiah Carmona
Googlers似乎像山羊出于某种原因,难怪他们把复活节彩蛋拿出来。山羊的投资也有严重的(!)投资: - 就在GoogleBlog中,与山羊割草 - 山羊是Baaaahk - 并在YouTube中录制在尤其是原生律的搬运工,高效。 - 没有任何
在第一个死亡之星开发者的重力也有常数.Android.com/Reference/Android/hardware/,在电视节目岛上丢失的developer.android.com/reference/android/hardware/...课程,数字。 - Fernando Gallego
他们甚至在棒棒糖之后更新了文档:"作为棒棒糖,现在可以使用高级山羊识别技术自动识别山羊。" - 帕特里克
来自Android R,此方法始终返回False。谷歌说这是完成的"保护山羊隐私&#34 ;:
/ ** *用于确定用户是否遵守的用户是受到*传送的。 * *< p> as {@link android.os.build.version_codes #lollipop},这种方法现在可以*使用高级山羊识别技术自动识别山羊。< / p> * *< p> as {@link android.os.build.version_codes #r},此方法始终返回* {@code false}以保护山羊隐私。< / p> * * @return返回用户的用户是否是山羊。 * / public boolean iSuseragoat(){if(mcontext.getapplicationInfo()。targetsdkversion> = build.version_codes.r){返回false; }返回mcontext.getpackagemanager().ispackageavailable(" com.coffeestainstudios.goatsimulator");}
从其来源,用于返回false的方法,直到它在API 21中更改。
/ ** *用于确定用户是否遵守的用户是受到*传送的。 * @return是用户制作此调用的是roat * / public boolean iSuseragoat(){返回false;}
它看起来像该方法没有真正的用途作为开发人员。以前有人指出,它可能是复活节彩蛋。
在API 21中,实现更改为检查是否有包含包com.coffeestainstudios.goatsimulator的已安装应用程序
/ ** *用于确定用户是否遵守的用户是受到*传送的。 * *< p> as {@link android.os.build.version_codes #lollipop},这种方法现在可以*使用高级山羊识别技术自动识别山羊。< / p> * * @return如果让用户发出此调用是山羊,则返回true。 * / public boolean iSuseragoat(){returncontext.getpackagemanager().ispackageavailable(" com.coffeestainstudios.goatsimulator");}
15理论:山羊在各种不稳定的地方被发现,就像纯粹的悬崖一样,可能是他们从普通的非山羊用户获得的趋势趋势。可能会解释"传送和#34;这可能是山羊出现在野蛮地搬迁,因为软件试图用专为非山羊设计的allos确定他们的位置。 - 泰德尔斯
这是历史课,而不是答案。即使是复活节彩蛋,也有一个有效的用例吗?作为一个复活节彩蛋并不排除它是有用的,你' ve没有显示它是否是或没有用。 - Casperone.
我对厚颜无耻的函数的人感到难过,期待它永远返回错误。 - 马丁konecny
@Raulk是的,他们使用了该应用程序的ID,他们没有选择一个随机的应用程序ID,然后碰巧有人创建一个ID ... - User253751.
我不知道这是不是#34;"官方用例,但下面在Java中产生警告(如果与返回语句混合,可以进一步生成编译错误,导致无法访问无法访问代码):
所以我经常发现自己编写一个愚蠢的实用方法,以便伪造代码块的最快方式,然后在完成调试中查找所有调用,所以提供了实现并在其上使用改变。
JLS指出(false)不触发"无法访问的代码"出于具体原因,这将破坏调试标志的支持,即基本上此用例(H / T @auselen)。 (静态最终布尔转机= false;例如)。
我替换为if,否则会产生更模糊的用例。我相信你可以像eclipse一样绊倒你的IDE,这种行为,但这个编辑是4年的未来,我不' t有一个eclipse环境才能玩。
12 @djechlin我不知道这是Android吗,在标准的java`如果(false){...}`编译只是精细(打开jdk javac 1.6和1.7) - Josefx.
@peterolson - 如果您专门尝试测试代码分支,其中一个错误或真实,这是模拟它最精确和明显的方法 - 如果您不匹配,则评论块可能不太准确块的适当末端(也许是您在' t注意到谨慎的IF / else块之后),如果您'重新迫使其他块等,它会导致编译错误。 - djechlin.
"提供的实施没有改变" - 和#39;问题。这是实现无警告&#34的灾难性方式;如果(假)"因为实现可以并改变。查看我对此问题的答案:AS ASUSeragoat()如果用户安装了特定应用程序,则返回True。祝你好运诊断,当你的代码突然开始表现奇怪的行为"随机"设备! - 标记惠特克
@thedayturns如果山羊开始使用Android设备,这将是我们最少的问题。 - Szymon Drosdzol.
这似乎是谷歌的内部笑话。它在Google Chrome Task Manager中的&#39除了一些工程师之外,它没有目的,发现它有趣。如果你愿意,这是一个目的。
int taskmanagermodel :: getgoatsteleport(int index)const {int种子= goat_salt_ *(索引+ 1);返回(种子>> 16)& 255;}
14我没有,你有它,你在哪里右键点击?或者它用于什么 - Auselen.
@auselen您必须右键单击列标题,以便查看下拉菜单以添加谷歌传送的列(至少在OS X上的Chrome中运行)。 cl.ly/ksbd. - 绿色
Windows XP +最新Chrome =它是' t那里,在Ubuntu上我看到它。 - Auselen.
@xeoncross是因为没有人在Windows软件中放置了复活节彩蛋。 - 标记艾伦
补充@djechlin答案(顺便说一下!),此函数调用也可以用作伪代码,以便在某些特定迭代或特定递归调用中停止时在IDE中保存断点,例如:
可以使用ISUseragoat()而不是伪变量声明,它将在IDE中显示为警告,并且在Eclipse特定情况下,将堵塞断点标记,使其难以启用/禁用它。如果该方法用作惯例,则稍后将通过某些脚本过滤所有调用(在提交阶段可能?)。
谷歌家伙是沉重的eclipse用户(他们提供了几个项目作为Eclipse插件:Android SDK,GAE等),所以@djechlin答案,这个互补答案会产生很多意义(至少对我而言)。
8如果你正在写作"假人"代码只是为了快速测试一些东西,Eclipse警告有什么问题?我认为这实际上是很大的,因为你可以找到它,以防你'遗忘了 - Tomasz.
@Tomasz问题是,在Eclipse中,警告标记将破坏断点,并且必须打开断点视图以取消激活或删除它 - Higuaro.
是的,我有一个解决方案。您可以右键单击警告符号,然后选择"切换断点"如果启用了以下行/选项,则表示创建断点。我的观点是,虚拟代码很糟糕,它应该是一个警告,所以哟不要忘记;) - Tomasz.
@tomasz解决了这个解决方案的问题是你事先知道断点是,所以简单的视觉检查' t让你知道警告隐藏一个断点,虽然是一个更好的解决方案,是使用条件断点,与他们完全忘记虚拟代码(和惯例方法),但IDE之间的差别和' t在工作站之间自动分享 - Higuaro.
为什么不仅使用null语句;?我的意思是,山羊显然更好,但已经有一种简单的方法 - 屠杀者
我曾经看到的唯一实际使用是在最后一次呼吁谷歌I / O比赛,在那里他们询问了特定版本的内容,看看参赛因素是否读取每个版本的API Diff报告。比赛也有编程问题,但一般来说,一些可以自动评分的琐事,以便将提交的数量降至合理的金额,这将更容易检查。
7"有一个有趣的命名方法/常量/无论是每个版本的Android。"你能说出一些吗? - Angelo.Hannes.
例如,有一个名为log.wtf的日志,他们称之为可怕的失败:p - Alacem.
@ angelo.hannes,在传感器常量中的重力,其中一个用于死亡之星(星球大战) - st0le.
绵羊是良好的语音识别工作的人,山羊是谁是谁为谁提供特别糟糕的人。只有语音识别器知道它们的分隔。人们可以' t预测其声音将容易地识别,谁的胜利' t。最好的政策是设计界面,以便它可以在各种环境中处理各种声音
也许,计划将Android用户标记为未来的山羊,以便能够为山羊&#39配置语音识别引擎;需要。 ;-)
0.
AS API 21(第一个Android 5.0 / Lollipop SDK),这会检测到是否安装了山羊模拟器应用程序:
/ ** *用于确定用户是否遵守的用户是受到*传送的。 * *< p> as {@link android.os.build.version_codes #lollipop},这种方法现在可以*使用高级山羊识别技术自动识别山羊。< / p> * * @return如果让用户发出此调用是山羊,则返回true。 * / public boolean iSuseragoat(){returncontext.getpackagemanager().ispackageavailable(" com.coffeestainstudios.goatsimulator");}
这应该明确表示djechlin''如果(假)是一个潜在灾难性的策略,请将其用作无警告的建议。以前返回的每个设备返回错误现在返回一个看似随机的值:如果这在您的代码中足够深,则可能需要很长时间才能弄清楚您的新错误来自哪里。
底线:如果你不控制方法的实现并决定在API文档中所述的目的来使用它,你'重新出具麻烦。
2为什么有人会在生产中留下任何类型(假)?来这里。如果那个'它的代码如下所示,这种实现更改是你的最少问题。 - djechlin.
@djechlin"我们需要这个功能吗?更改为(false),测试功能nope。检查" - User253751.
谷歌对山羊和山羊的复活节彩蛋严重相似。甚至有前面的堆栈溢出帖子。
正如以前的帖子中提到的那样,它也存在于Chrome任务管理器中(它在2009年首次出现在Wild中):
然后在Windows,Linux和Mac版本的Chrome 2010年初)。 "山羊传送"实际上是随机的:
int taskmanagermodel :: getgoatsteleport(int index)const {int种子= goat_salt_ *(索引+ 1);返回(种子>> 16)& 255; }
山羊和谷歌的最早相关性属于原始"割草与山羊" 博客帖子,据我所知。 我们可以安全地假设它只是一个复活节彩蛋,并且没有真正的使用,除了返回错误。 1 如果正在使用MonkeyRunner工具,则存在类似的呼叫,IsUserAmonkey(),返回true。 SDK解释就像这个一样好奇。 我希望这是在预期一个名为山羊的新SDK工具中添加了这一点,实际上是为了测试该工具的存在。 1我对此的假设是它允许ActivityManager在猴子UI压力测试工具中调用它,但我从未确认过这一点。 - ctrlf. 有趣的复活节彩蛋。 在Ubuntu版本的Chrome中,在任务管理器(Shift + Esc)中,用右键单击,可以在意大利版本中添加一个SCI-FI列,它是" capre teletrasportate" (传送山羊)。
0. 如果你安装了山羊模拟器,你' roat.如果你没有安装它,你'重复山羊。 我想到了一个开发商的个人实验,最有可能找到具有共同兴趣的人。 2该方法是在山羊模拟器之前创建的。 虽然它检查了应用程序是否已安装,但它以前没有做任何事情。 和它'无论如何,一个笑话。 - 里卡多A. Google Chrome' S Tab Monitor有一个复活节彩诗«山羊传送»(并且Isuseragoat文件也指的是山羊传送。所以它'绝对是一个内部笑话。 - Artem. 不是答案你和#39;寻找? 浏览其他标记的问题或提出您自己的问题。