java android多用户 android获取当前用户 - 适用于Android UserManager.isUserAGoat()的用例?




6 Answers

从它们的source ,用于返回false的方法直到它在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;
}

看起来这个方法作为开发人员对我们没有实际用处。 有人此前曾表示可能是复活节彩蛋

在API 21中,实现已更改为检查是否已安装包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");
}

这是源链接

usermanagerservice userhandle

我正在研究Android 4.2中引入的新API。 在查看UserManager类时,我遇到了以下方法:

public boolean isUserAGoat()

用于确定进行此呼叫的用户是否受传送的影响。

返回进行此调用的用户是否为山羊。

应该如何以及何时使用?




这似乎是谷歌内心的笑话。 它也是谷歌Chrome任务管理器中的特色。 除了一些工程师认为有趣之外,它没有任何意义。 如果你愿意的话,这本身就是一个目的。

  1. 在Chrome中,使用Shift + Esc打开任务管理器。
  2. 右键单击以添加Goats Teleported列。
  3. 奇迹。

关于太多传送的山羊,甚至有一个巨大的Chromium bug报告。

以下Chromium 源代码段HN注释中被盗。

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



在每个版本的Android中都有一个有趣的命名方法/常量/任何东西。

我见过的唯一实际用途是在Google I / O竞赛的最后召唤中,他们询问特定版本的内容,看看参赛者是否阅读了每个版本的API差异报告。 比赛也存在编程问题,但通常会有一些可以自动评分的琐事,以便将提交的数量降低到合理的数量,这样更容易检查。




谷歌非常喜欢山羊和山羊的复活节彩蛋 。 甚至还有关于它的帖子

正如之前的帖子中所提到的,它也存在于Chrome任务管理器中( 它在2009年首次出现 ):

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

然后在2010年初的Windows,Linux和Mac版Chrome中 )。 “山羊传送”的数量实际上是随机的

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

其他谷歌参考山羊包括:

据我所知,山羊和谷歌的最早相关性属于最初的“割山羊”博客文章。

我们可以安全地假设它只是一个复活节彩蛋,除了返回false之外没有现实世界的使用。




有一个类似的调用isUserAMonkey() ,如果使用MonkeyRunner工具则返回true。 SDK解释和这个一样好奇。

public static boolean isUserAMonkey(){}     

如果用户界面当前正被猴子搞乱,则返回true

Here是来源。

我希望这是为了预期一个名为山羊的新SDK工具,并且实际上可用于测试该工具的存在。

另请参阅类似的问题, ActivityManager中的Strange函数:isUserAMonkey。 这意味着什么,它的用途是什么?




有趣的复活节彩蛋
在Ubuntu版本的Chrome中,在任务管理器( shift + esc )中,右键单击可以添加一个科幻列,其意大利语版本为“Capre Teletrasportate”(传送山羊)。

关于它的一个有趣的理论就在here




Related