java get setkeyguarddisabled - 適用於Android UserManager.isUserAGoat()的用例?





6 Answers

我不知道這是否是“官方用例”,但是以下內容會在Java中產生警告(如果與return語句混合,可能會進一步產生編譯錯誤,從而導致代碼無法訪問):

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指出if (false)是否不會觸發“無法訪問的代碼”,因為這會破壞對調試標誌的支持,即基本上這個用例(h / t @auselen)。 ( static final boolean DEBUG = false;例如)。

我替換了if ,產生了一個更加模糊的用例。 我相信你可以通過這種行為來引導你的IDE,比如Eclipse,但是這個編輯是未來4年,我沒有Eclipse環境可以使用。

process myuserhandle

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

public boolean isUserAGoat()

用於確定進行此呼叫的用戶是否受傳送的影響。

返回進行此調用的用戶是否為山羊。

應該如何以及何時使用?




補充@djechlin answer (順便說一下好的答案!),當你想在某個特定的迭代或特定的遞歸調用中停止時,這個函數調用也可以用作偽代碼來在IDE中保存斷點,例如:

可以使用isUserAGoat()代替虛擬變量聲明,該聲明將在IDE中顯示為警告,並且在Eclipse特定情況下,將阻塞斷點標記,從而難以啟用/禁用它。 如果該方法用作約定,則稍後可以通過某些腳本過濾所有調用(在提交階段可能?)。

谷歌人是沉重的Eclipse用戶(他們提供了幾個項目作為Eclipse插件:Android SDK,GAE等),所以@djechlin答案和這個補充答案很有意義(至少對我而言)。




在語音識別學科中,用戶分為山羊綿羊

例如,請參見第89頁

綿羊是語音識別非常好的人,山羊是非常糟糕的人。 只有語音識別器知道它們之間的區別。 人們無法預測誰的聲音將被輕易識別,誰的聲音不會被識別。 最好的策略是設計界面,以便它可以處理各種環境中的各種聲音

也許,計劃在未來將Android用戶標記為山羊,以便能夠配置語音識別引擎以滿足山羊的需求。 ;-)




從API 21(第一個Android 5.0 / Lollipop SDK)開始 ,它會檢測是否安裝了Goat Simulator應用程序:

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

這應該清楚地表明, djechlin建議將其用作無警告if (false)是一種潛在的災難性策略。 之前為每個設備返回false的內容現在返回一個看似隨機的值:如果在代碼中埋藏得足夠深,則可能需要長時間才能確定新bug的來源。

結論:如果您不控制方法的實現並決定將其用於API文檔中未說明的目的,那麼您將遇到麻煩。




在這個星球上最偏遠的山脈中,有一種先進的山羊種類,它們似乎能夠像我們人類一樣使用手機!

洩露的鏡頭: youtu.be/YJwZMUn7GdQ

谷歌必須已經發現了這一點,並決定為他們提供支持,試圖保持技術進步的前沿。




請參閱以下源代碼:

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



Related