簡體   English   中英

使用AndroidManagement API在受管設備上安裝應用程序的策略主體

[英]Policy body to install an Application on the Managed device using AndroidManagement API

我正在C#控制台應用程序中使用Google的AndroidManagement API構建MDM應用程序,我也為該設備創建了一個具有默認值的策略。

我正在嘗試創建一個應用程序策略來在設備上安裝新的應用程序包,並且所有博客都建議在JSON中添加應用程序策略:

{
  "applications": [
    {
      "packageName": "com.example",
      "installType": "FORCE_INSTALLED",
      "lockTaskAllowed": true,
      "defaultPermissionPolicy": "GRANT"
    },
    {
      "packageName": "example2",
      "installType": "FORCE_INSTALLED",
      "lockTaskAllowed": false,
      "defaultPermissionPolicy": "GRANT"
    },
    {
      "packageName": "example3",
      "installType": "FORCE_INSTALLED",
      "lockTaskAllowed": true,
      "defaultPermissionPolicy": "GRANT"
    }
  ],
  "cameraDisabled": true,
  "screenCaptureDisabled": true,
  "adjustVolumeDisabled" :  true
}

並創建了Policy正文實例:

public static Google.Apis.AndroidManagement.v1.Data.Policy body = new Google.Apis.AndroidManagement.v1.Data.Policy();

Json加載完美,但由於類型轉換,無法將application policy lists保存到ApplicationPolicy中。

{
    var appPolicy = JsonConvert.DeserializeObject<Rootobject>(File.ReadAllText(applicationPolicyJson));

    policyBody.CameraDisabled = appPolicy.CameraDisabled;
    policyBody.ScreenCaptureDisabled = appPolicy.ScreenCaptureDisabled;
    policyBody.AdjustVolumeDisabled = appPolicy.AdjustVolumeDisabled;

    policyBody.Applications = new List<ApplicationPolicy> {***appPolicy*** };
}


public class Rootobject
{
   public Application[] Applications { get; set; }
   public bool CameraDisabled { get; set; }
   public bool ScreenCaptureDisabled { get; set; }
   public bool AdjustVolumeDisabled { get; set; }
}
public class Application
{
   public string PackageName { get; set; }
   public string InstallType { get; set; }
   public bool LockTaskAllowed { get; set; }
   public string DefaultPermissionPolicy { get; set; }
}

我怎樣才能做到這一點?

謝謝!

使用C#庫時,無法直接“加載”JSON, Patch方法會使用需要使用C#語義構建的Policy對象。 Java也是如此。 另一方面,Python庫使用一個易於從JSON生成的字典。

對於C#,這看起來像:

using Google.Apis.AndroidManagement.v1.Data;

var policy = new Policy();

policy.CameraDisabled = true;
policy.ScreenCaptureDisabled = true;
policy.AdjustVolumeDisabled = true;

var app1 = new ApplicationPolicy();
app.PackageName = "com.android.chrome";
app.InstallType = "FORCE_INSTALLED";
app.LockTaskAllowed = true;
app.DefaultPermissionPolicy = "GRANT";

var app2 = new ApplicationPolicy();
app.PackageName = "com.example";
app.InstallType = "FORCE_INSTALLED";

policy.Applications = new List<ApplicationPolicy> {app1, app2};

免責聲明:我不習慣使用C#,所以這段代碼可能無法編譯,但希望這能讓你有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM