Định cấu hình ứng dụng

Một số ứng dụng được thiết kế cho doanh nghiệp có các chế độ cài đặt tích hợp gọi là cấu hình được quản lý mà quản trị viên CNTT có thể định cấu hình từ xa. Ví dụ: một ứng dụng có thể có tuỳ chọn chỉ đồng bộ hoá dữ liệu khi thiết bị được kết nối với Wi-Fi. Đối với tất cả các bộ giải pháp, bạn cần phải cung cấp cho quản trị viên CNTT khả năng chỉ định cấu hình được quản lý và áp dụng cho các thiết bị.

Sơ đồ dưới đây minh hoạ một số giai đoạn chính trong hoạt động quản lý cấu hình được quản lý cùng với thông tin tổng quan về các tuỳ chọn có sẵn thông qua API EMM của Google Play.

Kiểm tra xem ứng dụng có hỗ trợ cấu hình được quản lý hay không

Sử dụng Products.getAppRestrictionsSchema để xác định xem ứng dụng có hỗ trợ cấu hình được quản lý hay không. Sau đây là một ví dụ sử dụng Thư viện ứng dụng API EMM của Google Play cho Java.

public AppRestrictionsSchema getAppRestrictionsSchema(String enterpriseId,
    String productId, String language) throws IOException {
  return androidEnterprise
     .product()
     .getAppRestrictionsSchema(enterpriseId, productId, language)
     .execute();
}

Tất cả ứng dụng đều trả về giản đồ hạn chế ứng dụng (cấu hình được quản lý). Nếu lệnh gọi trả về một giản đồ trống, thì ứng dụng không hỗ trợ quản lý cấu hình. Nếu lệnh gọi trả về một giản đồ chứa một tập hợp các hạn chế, thì ứng dụng sẽ hỗ trợ các cấu hình được quản lý. Ví dụ: một ứng dụng có thuộc tính để bật tính năng in từ xa qua VPN có thể trả về phản hồi sau đây cho Products.getAppRestrictionsSchema.

    {
      "kind": "androidenterprise#appRestrictionsSchema",
      "restrictions": [
        {
          "key": "printing_enabled",
          "title": "Enable printing",
          "restrictionType": "bool",
          "description": "Allow user to print from the app",
          "defaultValue": {
            "type": "bool",
            "valueBool": true,
          }
        },
        {
          "key": "vpn_configurations",
          "title": "VPN configurations",
          "restrictionType": "bundle_array",
          "description": "List of VPN configurations",
          "nestedRestriction": [
            {
              "key": "vpn_configuration",
              "title": "VPN configuration",
              "restrictionType": "bundle",
              "nestedRestrictions": [
                {
                  "key": "server",
                  "title": "VPN server host",
                  "restrictionType": "string"
                },
                {
                  "key": "username",
                  "title": "VPN account username",
                  "restrictionType": "string"
                }
              ]
            }
          ]
        }
      ]
    }

Chỉ định cấu hình được quản lý

Đối với các ứng dụng hỗ trợ cấu hình được quản lý, bạn có thể cho phép quản trị viên CNTT thiết lập các cấu hình này từ bảng điều khiển EMM bằng cách nhúng iframe cấu hình được quản lý hoặc phát triển giao diện người dùng của riêng bạn.

Cách 1: Nhúng iframe cấu hình được quản lý

Cách dễ nhất để hỗ trợ cấu hình được quản lý là nhúng iframe cấu hình được quản lý vào bảng điều khiển EMM của bạn. Iframe truy xuất giản đồ cấu hình được quản lý cho một ứng dụng cụ thể và cho phép quản trị viên CNTT lưu, chỉnh sửa và xoá các hồ sơ cấu hình tuỳ chỉnh. Bạn có thể sử dụng API Play EMM để áp dụng hồ sơ tuỳ chỉnh cho các thiết bị của người dùng. Để tìm hiểu thêm về iframe và cách thêm iframe này vào bảng điều khiển, hãy xem iframe cấu hình được quản lý.

Lựa chọn 2: Tạo giao diện người dùng của riêng bạn

Bằng cách sử dụng cấu hình được Products.getAppRestrictionsSchema trả về, bạn có thể tạo giao diện người dùng riêng cho phép quản trị viên CNTT quản lý cấu hình ứng dụng.

Áp dụng cấu hình được quản lý

Để áp dụng cấu hình được quản lý cho các thiết bị, DPC của bạn phải được tích hợp với Thư viện hỗ trợ DPC, như nêu chi tiết trong bài viết Tạo trình kiểm soát chính sách thiết bị. Thư viện hỗ trợDPC xử lý minh bạch việc uỷ quyền đến Google Play để áp dụng các cấu hình được quản lý.

Bạn có thể áp dụng cấu hình được quản lý cho một thiết bị bằng cách thiết lập policy.productPolicy.managedConfiguration trong policy của Device.

Sử dụng mcmId

Mỗi lần quản trị viên CNTT lưu một hồ sơ cấu hình mới từ iframe cấu hình được quản lý, iframe đó sẽ trả về một giá trị nhận dạng duy nhất có tên là mcmId. mcmId không có giới hạn về số lượng thiết bị có thể áp dụng và không có thời gian hết hạn.

Để áp dụng hồ sơ cấu hình cho một thiết bị, hãy đặt policy.productPolicy.managedConfiguration.configurationVariables.mcmId trong policy của Device.

Nếu muốn cho phép quản trị viên CNTT sử dụng biến trong iframe cấu hình được quản lý (chẳng hạn như $FirstName, $LastName), bạn cần xác định mọi biến có trong hồ sơ bằng cách sử dụng policy.productPolicy[].managedConfiguration.configurationVariables.mcmId.variableSet[].

Sử dụng danh sách các tài sản được quản lý

Bạn cũng có thể bao gồm một tập hợp các thuộc tính được quản lý bằng cách thiết lập policy.productPolicy.managedConfiguration.managedProperty[] trong policy của Device.

Ví dụ bên dưới cho thấy cách xác định cấu hình. Cấu hình này chứa bundle_array (danh sách) được tạo thành từ 2 thuộc tính gói (trong trường hợp này là một nhóm các thuộc tính liên quan, trong trường hợp này là các thuộc tính của VPN).

    ManagedConfiguration managedConfiguration = new ManagedConfiguration()
      .setManagedProperty(
        ImmutableList.of(
            new ManagedProperty()
                .setKey("printing_enabled")
                .setValueBool(true),
            new ManagedProperty()
                .setKey("vpn_configurations")
                .setValueBundleArray(
                    ImmutableList.of(
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn1.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("john.doe"))),
                        new ManagedPropertyBundle().setManagedProperty(
                            ImmutableList.of(
                                new ManagedProperty()
                                    .setKey("server")
                                    .setValueString("vpn2.example.com"),
                                new ManagedProperty()
                                    .setKey("username")
                                    .setValueString("jane.doe")))))));

Để biết thêm thông tin về các thuộc tính cấu hình mà một ứng dụng có thể hỗ trợ, hãy xem bài viết Xác định cấu hình được quản lý.

Liệt kê hồ sơ cấu hình của ứng dụng

Tuỳ thuộc vào cách thiết kế giải pháp, bạn có thể cần hiển thị danh sách hồ sơ cấu hình đã lưu cho ứng dụng. Để truy xuất danh sách này, hãy gọi Managedconfigurationssettings.list.