Android UserManager.isuserAgoat ()에 대한 적절한 사용 사례?


질문

 

나는 Android 4.2에서 소개 된 새로운 API를보고 있었다. Usermanager 클래스를보고있는 동안 다음 방법을 가로 지르 셨습니다.

Public Boolean IsuserAgoat () 사용자 가이 호출을 만드는지 여부를 결정하는 데 사용됩니다. 이 호출을 생성하는 사용자가 염소인지 여부를 리턴합니다.

어떻게 그리고 언제 이것을 사용해야합니까?


답변

 

Android R 업데이트 :

Android R 에서이 메서드는 항상 false를 반환합니다.Google은 이것이 "염소 개인 정보 보호를 보호하기 위해 이루어집니다"라고 말합니다.

/**
 * 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>
 *
 * <p>As of {@link android.os.Build.VERSION_CODES#R}, this method always returns
 * {@code false} in order to protect goat privacy.</p>
 *
 * @return Returns whether the user making this call is a goat.
 */
public boolean isUserAGoat() {
    if (mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.R) {
        return false;
    }
    return mContext.getPackageManager()
            .isPackageAvailable("com.coffeestainstudios.goatsimulator");
}

이전 답변 :

그들의 소스에서, API 21에서 변경 될 때까지 false를 반환하는 데 사용되는 방법.

/**
 * 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에서는 패키지가 설치된 응용 프로그램이 있는지 확인하기 위해 구현이 변경되었습니다.

/**
 * 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");
}

여기서 소스와 변화가 있습니다.



답변

나는 이것이 ""공식 사용 사례인지 알지 못하지만, 다음은 Java에서 경고를 생성한다 (리턴 진술과 혼합하는 경우 컴파일 오류를 더 많이 생산할 수 있으므로, 도달 할 수없는 코드로 이어지는) :

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

그러나 이것은 법적입니다.

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

그래서 나는 코드 블록을 더미로 더하는 가장 빠른 방법으로 바보 같은 유틸리티 방법을 작성한 다음 디버깅을 완성 할 때 구현이 변경되지 않으므로이를 위해 사용될 수 있습니다.

JLS가 (FALSE)가 디버그 플래그에 대한 지원을 중단하는 특정 이유로 (FALSE) "연결할 수없는 코드"를 트리거하지 않으면 기본적 으로이 유스 케이스 (H / T @AUSELEN)를 끊을 수있는 특정 이유로 인해 "연결할 수없는 코드"를 실행합니다.(정적 최종 부울 디버그 = 거짓). 예를 들어).

나는 더 많은 모호한 사용 사례를 생산하는 경우에 대체되었습니다.나는이 행동으로 일식과 같은 당신의 IDE를 여행 할 수 있다고 믿습니다. 그러나이 편집은 미래에 4 년이며, 나는 일식 환경을 가지고 놀 수 없습니다.



답변

이것은 Google에서 내부 농담 인 것으로 보입니다.또한 Google 크롬 작업 관리자에도 등록되어 있습니다.그것은 어떤 엔지니어가 재미있는 것을 발견하는 것 이외의 목적이 없습니다.당신이 할 것인지, 그 자체로는 목적이 있습니다.

  1. In Chrome, open the Task Manager with Shift+Esc.
  2. Right click to add the Goats Teleported column.
  3. Wonder.

너무 많은 텔레포트 염소에 대한 거대한 크롬 버그 보고서도 있습니다.

java

다음과 같은 크롬 소스 코드 스 니펫은 HN 코멘트에서 도난당했습니다.

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


답변

@DjeChlin 답변 (방법으로 좋은 대답!)을 보완하면 특정 반복이나 특정 재귀 호출에서 중지하려는 경우 IDE에서 중단 점을 보관할 수있는 더미 코드로 사용할 수 있습니다.

java

ISUSERAGOAT ()는 IDE에서 경고로 표시 될 더미 변수 선언 대신에 사용될 수 있으며, Eclipse 특별한 경우에는 중단 점 표시를 막아서 활성화 / 비활성화하기가 어렵습니다.이 방법이 규칙으로 사용되는 경우, 모든 호출은 나중에 일부 스크립트에 의해 필터링 될 수 있습니다 (Commit Phase Ansort?).

java

Google Guys는 무거운 Eclipse 사용자 (Eclipse Plugins : Android SDK, GAE 등)로 여러 프로젝트를 제공하므로 @DJECHLIN 답변 과이 보완적인 답변은 많은 의미가 있습니다 (적어도 나를 위해).



답변

Android의 각 버전에는 모든 버전에 재미 있은 이름이 지정된 메소드 / 상수 / 뭐든간에 있습니다.

내가 본 유일한 실제 사용은 Google I / O 경연 대회에 대한 마지막 통화에있었습니다. 특정 버전에 대해 무엇이 었는지 물었습니다. 참가자가 각 릴리스에 대한 API Diff Report를 읽는지 확인합니다.콘테스트에서도 프로그래밍 문제가 있었지만 일반적으로 일부 퀴즈는 자동으로 점수로 채취되어 자동으로 채취 할 수있는 합리적인 금액으로 제출 수를 얻을 수 있습니다.



답변

음성 인식의 훈련에서 사용자는 염소와 양으로 나뉘어져 있습니다.

예를 들어, 여기서 89 페이지에서 :

양들은 음성 인식이 잘 작동하는 사람들이며, 염소는 매우 가난하게 작동하는 사람들입니다.음성 인식기만이 그들을 구분하는 것을 알고 있습니다.사람들은 목소리가 쉽게 인식 될 것인지 예측할 수 없습니다.가장 좋은 정책은 모든 종류의 환경에서 모든 종류의 목소리를 처리 할 수 있도록 인터페이스를 설계하는 것입니다.

아마도 Android 사용자가 Goats의 요구 사항을위한 음성 인식 엔진을 구성 할 수 있도록 Android 사용자를 염소로 표시 할 계획입니다.;-)

출처:https://stackoverflow.com/questions/13375357/proper-use-cases-for-android-usermanager-isuseragoat