1

我將在我正在開發的應用程序中使用託管配置。託管配置XML文件中defaultValue的用途是什麼?

在得到answer的幫助之後,我不明白在託管配置中如何使用默認值。我的參考是link

在我的「註釋」下的參考資料中,Google說:「受管配置Bundle包含一個由受管配置提供程序明確設置的每個配置的項目,但是不能認爲配置存在於只是因爲您在託管配置XML文件中定義了一個默認值。

我知道如果一個項目沒有被託管配置提供程序明確設置,那麼該項目將不會在Bundle中。但是下一條(最後一條)線對我來說並不清楚。

我的主要問題是「託管配置XML文件中defaultValue的用途是什麼」?但我希望答案也有助於回答或指導我回答這些問題:

  • 誰能讀取默認值?
  • 託管應用程序可以讀取它嗎?如果是這樣,怎麼樣?
  • 託管配置提供程序可以讀取它嗎?如果是這樣,怎麼樣?
  • 爲什麼我不能假設一個配置會出現在一個包中,如果它有一個默認值?託管配置提供程序是否負責讀取defaultValue並明確設置它?

回答

1

您可以使用defaultValue字段來解釋您的應用程序在管理應用程序未明確設置屬性時的行爲。

清單中引用的XML文件旨在供MDM在其控制檯中顯示UI,以便IT管理員可以配置您的應用程序。如果您爲某個媒體資源設置了defaultValue,那麼當您的應用第一次配置時(例如,顯示默認爲true的布爾屬性的選中複選框),MDM會預先填充相應的字段。

對於管理員,不配置您的應用應該與使用默認配置配置它相同。因此,爲了保持一致,無論您的應用是未設置還是設置爲defaultValue,您的應用都應該採取相同的行爲。

要了解您的配置在MDM控制檯中的外觀如何,您可以使用Android Management Experience demo

編輯:如何限制模式和defaultValue可以使用Google Play EMM API getAppRestrictionsSchema方法,該方法返回

  • 檢索

    應用程序的XML文件中定義的限制架構可以檢索任何更多細節defaultValue s對於每個限制

  • 或設備上的任何應用程序使用RestrictionsManager.getManifestRestrictions,其中返回的RestrictionEntry s有他們的v如果在XML文件中指定,則設置爲defaultValue,否則設置爲一般默認值(0TYPE_INTEGER,falseTYPE_BOOLEAN等)。您可以在AOSP的RestrictionManager.java中閱讀此方法的完整邏輯,並瞭解它如何在TestDPC的ManageAppRestrictionsFragment.java中使用。
+0

謝謝弗雷德。爲了澄清,只有在使用Google Play EMM API時才能訪問defaultValue字段?因此,沒有Android API可用於從託管配置XML文件中檢索它? –

+1

限制模式和'defaultValue'字段也可以通過設備上的任何其他應用程序檢索。我編輯了我的回覆更多細節。 – Fred

+0

完美!瞭解RestrictionEntry對象包含defaultValue(如果指定),因爲它的值以及來自受管配置XML文件的所有其他靜態屬性對我來說是缺失的部分。謝謝! –