Các nhiệm vụ quản lý điển hình

EMM có thể triển khai nhiều tác vụ quản lý điển hình trong các giải pháp dành cho Android của doanh nghiệp, chẳng hạn như các tác vụ trình bày trong hướng dẫn này. Mã mẫu sử dụng Thư viện ứng dụng API EMM của Google Play cho Java®.

Tra cứu người dùng và nhận thông tin chi tiết về người dùng

Nhiều API EMM của Google Play yêu cầu phải có userId (ngoài enterpriseId) để thực hiện một số thao tác liên quan đến người dùng, chẳng hạn như cài đặt ứng dụng, lấy quyền và cấp phép. Một số lệnh gọi yêu cầu đối tượng người dùng.

Nếu một tổ chức sử dụng Tài khoản Google Play được quản lý, bạn sẽ duy trì mối liên kết giữa địa chỉ email của người dùng và mã nhận dạng người dùng của những tài khoản đó. Với Tài khoản Google, bạn sẽ sử dụng UsersListResponse.

Tra cứu người dùng

Mã mẫu này lấy mã nhận dạng người dùng liên kết với Tài khoản Google. Chính sách này không áp dụng cho các tổ chức sử dụng Tài khoản Google Play được quản lý.

Ví dụ này giả định rằng bạn đã nhập mô hình UserUsersListResponse vào mã. Để thiết lập một tài khoản người dùng cụ thể, hãy lấy userId của tài khoản đó bằng cách chuyển enterpriseId và email đến UsersListResponse.

public UsersListResponse list(String enterpriseId, String email) throws
   IOException {
    return androidEnterprise
        .users()
        .list(enterpriseId, email)
        .execute();
}

Lấy thông tin chi tiết về người dùng

Sau khi có userId, bạn có thể truy xuất các thông tin chi tiết khác. Xem Users.Get.

public User get(String enterpriseId, String userId) throws IOException {
    return androidEnterprise
        .users()
        .get(enterpriseId, userId)
        .execute();
}

Cấp cho người dùng quyền truy cập vào các ứng dụng

Bạn có thể dùng các API EMM của Google Play để kiểm soát những ứng dụng mà người dùng có thể truy cập từ cửa hàng Managed Google Play. Quyền truy cập vào ứng dụng bao gồm khả năng tìm kiếm, xem, cài đặt và cập nhật ứng dụng đó. Có ba quyền truy cập khác nhau các cấp độ hiện có:

  • Chỉ ứng dụng được phép: Người dùng chỉ có quyền truy cập vào một số ứng dụng.
  • Tất cả ứng dụng đã phê duyệt: Người dùng có quyền truy cập vào tất cả ứng dụng được phê duyệt doanh nghiệp.
  • Tất cả ứng dụng: Người dùng có quyền truy cập vào tất cả ứng dụng cung cấp công khai trong cửa hàng Google Play.

Chỉ cấp cho người dùng quyền truy cập vào các ứng dụng cụ thể

Ví dụ bên dưới cho thấy cách cấp cho người dùng quyền truy cập vào một nhóm ứng dụng cụ thể từ cửa hàng Managed Google Play. Quy trình này bao gồm các bước sau:

  • Thu thập danh sách productIds (ứng dụng) được phê duyệt cho người dùng (productSet).
  • Hãy chỉ định rằng người dùng chỉ có thể truy cập vào các ứng dụng trong danh sách đã cho bằng cách đặt giá trị của chuỗi productSetBehavior thành "whitelist".
  • Áp dụng danh sách productIds và cài đặt hành vi cho bộ sản phẩm có sẵn của người dùng bằng cách sử dụng setAvailableProductSet.
public ProductSet setProductSet(String enterpriseId, String userId,
    List<String> productIds) throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductId(productIds);
  productSet.setProductSetBehavior("whitelist");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Cấp cho người dùng quyền truy cập vào tất cả ứng dụng đã phê duyệt

Ví dụ bên dưới cho biết cách cấp cho người dùng quyền truy cập vào bất kỳ ứng dụng nào được phê duyệt cho doanh nghiệp từ cửa hàng Managed Google Play. Quy trình này bao gồm các bước sau:

  • Chỉ định rằng người dùng có thể truy cập vào tất cả ứng dụng đã được phê duyệt của doanh nghiệp bằng cách đặt giá trị của chuỗi productSetBehavior thành "allApproved".
  • Áp dụng chế độ cài đặt này cho người dùng bằng setAvailableProductSet.
public ProductSet setUserIncludeApprovedApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("allApproved");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Lưu ý: Khi bạn đặt productSetBehavior thành "allApproved", bạn không cần chỉ định productIds cho productSet.

Cấp cho người dùng quyền truy cập vào tất cả ứng dụng

Ví dụ bên dưới cho thấy cách cấp cho người dùng khả năng trong Managed Google Cửa hàng Play để truy cập vào bất kỳ ứng dụng nào có trên Cửa hàng Google Play công khai. Người dùng có quyền truy cập vào tất cả ứng dụng vẫn chỉ nhìn thấy bố cục cửa hàng của doanh nghiệp khi họ mở Managed Google Play nhưng có thể tìm thấy các ứng dụng khác thông qua tìm kiếm.

Một số người dùng đáng tin cậy, chẳng hạn như quản trị viên CNTT, có thể yêu cầu cấp độ cao hơn này quyền truy cập để kiểm thử và đánh giá ứng dụng trước khi phê duyệt cho doanh nghiệp. Chiến lược phát hành đĩa đơn quy trình cấp quyền truy cập cho người dùng vào tất cả ứng dụng bao gồm các bước sau:

  • Chỉ định rằng người dùng có thể truy cập tất cả ứng dụng trong Cửa hàng Google Play bằng cách đặt giá trị của chuỗi productSetBehavior thành "includeAll".
  • Áp dụng chế độ cài đặt này cho người dùng bằng setAvailableProductSet.
public ProductSet setUserIncludeAllApps(String enterpriseId, String userId)
    throws IOException {
  ProductSet productSet = new ProductSet();
  productSet.setProductSetBehavior("includeAll");

  return androidEnterprise
      .users()
      .setAvailableProductSet(enterpriseId, userId, productSet)
      .execute();
}

Lưu ý: Khi bạn đặt productSetBehavior thành "includeAll", bạn không cần chỉ định productIds cho productSet.

Tạo bố cục cửa hàng

Sau khi cấp cho người dùng quyền truy cập vào các ứng dụng, hãy nhóm các ứng dụng đó thành nhiều cụm để hiển thị trên giao diện của Managed Google Play.

Bạn có thể tạo bố cục cửa hàng tuỳ chỉnh riêng biệt cho từng khách hàng bằng cách sử dụng API Storelayoutpages Storelayoutclusters. Bố cục thông thường bao gồm một tập hợp các trang và mỗi trang có thể chứa các cụm ứng dụng. Bạn có thể đặt các ứng dụng liên quan vào cùng một cụm. Xem bài viết Tạo bố cục cửa hàng tuỳ chỉnh để biết thông tin chi tiết và mã mẫu.

Yêu cầu cấp quyền cho ứng dụng

Để thêm ứng dụng vào bố cục cửa hàng tuỳ chỉnh (hoặc tự động cài đặt ứng dụng trên thiết bị) và hiển thị ứng dụng để người dùng có thể chọn ứng dụng đó, thì quản trị viên phải chấp nhận quyền đối với ứng dụng đó cho toàn bộ tổ chức. Quản trị viên có thể chấp nhận quyền cho ứng dụng và đánh dấu ứng dụng là đã phê duyệt để phân phối trong Google Play Console (xem tổng quan về Managed Google Play).

Cách hay nhất là bạn nên nhúng iframe quyền vào bảng điều khiển EMM. Điều này có nghĩa là người dùng không phải điều hướng riêng biệt với Managed Google Play Console. Sử dụng Products.getApprovalUrl để lấy URL của iframe.

public String getApprovalUrl(String enterpriseId, String productId)
    throws IOException {
  return androidEnterprise
      .products()
      .generateApprovalUrl(enterpriseId, productId)
      .execute()
      .getUrl();
}

Hãy sử dụng Products.approve để chấp nhận các quyền đó.

public void approveProduct(String enterpriseId,
    String productId,
    String approvalUrl) throws IOException {
  ProductsApproveRequest productsApproveRequest =
      new ProductsApproveRequest()
          .setApprovalUrlInfo(
              new ApprovalUrlInfo().setApprovalUrl(approvalUrl));
  androidEnterprise
      .products()
      .approve(enterpriseId, productId, productsApproveRequest)
      .execute();
  }

Xem thông tin thiết bị của người dùng

Để thực hiện các thao tác theo thiết bị cụ thể, bạn cần xác định các thiết bị liên kết với một người dùng. Ví dụ này trả về danh sách thiết bị cho một userID nhất định bằng DevicesListResponse.

public DevicesListResponse list(String enterpriseId, String userId) throws
   IOException {

    return androidEnterprise
        .devices()
        .list(enterpriseId, userId)
        .execute();
}

Nếu người dùng đồng ý với Điều khoản dịch vụ được đưa ra khi họ cố gắng truy cập Managed Google Play lần đầu tiên, phản hồi sẽ bao gồm các thiết bị không được quản lý (thiết bị có loại quản lý unmanagedProfile).

Nhận và thiết lập trạng thái của thiết bị

Tác vụ quản lý này chỉ áp dụng cho các tổ chức sử dụng Tài khoản Google. Nó không áp dụng cho các tổ chức sử dụng Tài khoản Google Play được quản lý.

Khi Tài khoản Google được quản lý của người dùng được kích hoạt trên một thiết bị được quản lý, hãy truy cập vào các dịch vụ của Google được bật (hoặc tắt) dựa trên:

Nếu chế độ thực thi EMM bị tắt, trạng thái thiết bị sẽ bị bỏ qua và tài khoản sẽ bị bỏ qua được cấp quyền truy cập vào các dịch vụ của Google bất cứ khi nào dịch vụ này được kích hoạt trên thiết bị Android. Nếu chế độ thực thi EMM được bật nhưng trạng thái của thiết bị không thay đổi, thì người dùng sẽ không thể cài đặt các ứng dụng từ Google Play và API EMM của Google Play không được tự động cài đặt cho người dùng đó trên thiết bị.

Ví dụ này cho thấy cách nhận trạng thái của một thiết bị nhất định (được chỉ định bằng cách truyền enterpriseId, userIddeviceId).

getState()setState() phù hợp với các thiết bị có managementType Chỉ managedDevice hoặc managedProfile (trên tài nguyên Devices). Thiết bị có không thể kiểm soát managementType của unmanagedProfile bằng các API này.

public DeviceState getState(String enterpriseId, String userId, String
   deviceId) throws IOException {

    return androidEnterprise
        .devices()
        .getState(enterpriseId, userId, deviceId)
        .execute();
}

Bật hoặc tắt các dịch vụ của Google cho tài khoản này trên thiết bị bằng cách đặt Chuỗi AccountState thành hằng số thích hợp.

public DeviceState setState(String enterpriseId, String userId, String
   deviceId, String accountState) throws IOException {

    DeviceState deviceState = new DeviceState();
    deviceState.setAccountState(accountState);

    return androidEnterprise
        .devices()
        .setState(enterpriseId, userId, deviceId, deviceState)
        .execute();
}

Đẩy cài đặt ứng dụng trên thiết bị

Quản trị viên có thể tự động cài đặt ứng dụng. Bạn không bắt buộc phải có sự tương tác của người dùng. Ví dụ này dùng Installs.Update để tự động cài đặt một ứng dụng (do productId xác định) đến một thiết bị (được deviceId xác định).

public Install update(String enterpriseId, String userId, String
   deviceId, String productId) throws IOException {

    return androidEnterprise
        .installs()
        .update(enterpriseId, userId, deviceId, productId,
           new Install())
        .execute();
}

Nếu ứng dụng đã tồn tại trên thiết bị và có một phiên bản cập nhật, thì ứng dụng sẽ được cập nhật lên phiên bản mới.

Tìm kiếm và tải ứng dụng trong danh sách ứng dụng đã phê duyệt

Quản trị viên tạo và quản lý danh sách các ứng dụng được phê duyệt mà người dùng có thể sử dụng trong Managed Google Play. Những người dùng sử dụng thiết bị cá nhân (BYOD) có hồ sơ công việc và người dùng sử dụng các thiết bị có thể dùng để quản lý toàn bộ thiết bị do tổ chức quản lý chỉ có thể tải các ứng dụng xuống trong danh sách đã phê duyệt này.

Bạn có thể tuỳ chỉnh bảng điều khiển EMM (quản lý thiết bị di động doanh nghiệp) để thêm hộp tìm kiếm sao cho quản trị viên chỉ có thể tìm ứng dụng trong danh sách ứng dụng đã phê duyệt. Chức năng tìm kiếm này chấp nhận các thông số giống như chức năng tìm kiếm tiêu chuẩn của Managed Google Play, nhưng chỉ tìm kiếm các ứng dụng trong danh sách ứng dụng đã phê duyệt.

Ví dụ: nếu quản trị viên muốn chuyển một ứng dụng trong danh sách ứng dụng đã phê duyệt sang các thiết bị thuộc doanh nghiệp của mình, thì họ có thể dùng chức năng tìm kiếm này trong bảng điều khiển của EMM để tìm ứng dụng.

Trong truy vấn, bạn có thể chỉ định số lượng sản phẩm tối đa mà kết quả nên có, chẳng hạn như setMaxResults(10L), chỉ đủ để lấp đầy màn hình. Giá trị mặc định là 100. Đây cũng là giá trị tối đa có thể được trả về cùng một lúc. Khi kết quả chứa mã thông báo phân trang, bạn có thể truy xuất thêm kết quả khác bằng cách truyền mã thông báo phân trang.

Ví dụ này cho biết cách nhận được 10 kết quả đầu tiên khi tìm kiếm ứng dụng cải thiện hiệu suất. Vui lòng xem Products.List.

public List searchProducts(String enterpriseId) throws IOException {
  ProductsListResponse executeResult =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setQuery("productivity")
          .execute();
  return executeResult.getProduct();
}

Nếu kết quả tìm kiếm có chứa mã phân trang, thì lượt tìm kiếm đã cho ra hơn setMaxResults kết quả, hoặc trong ví dụ này là hơn 10 kết quả. Để truy xuất thêm kết quả, hãy thực hiện lại tìm kiếm và đưa mã thông báo phân trang vào yêu cầu. Ví dụ này nhận được 10 kết quả tiếp theo.

public ProductsListResponse continueSearch(
    String enterpriseId, ProductsListResponse previousResponse) throws IOException {
  ProductsListResponse nextResults =
      androidEnterprise
          .products()
          .list(enterpriseId)
          .setMaxResults(10L)
          .setToken(previousResponse.getTokenPagination().getNextPageToken())
          .setQuery("productivity")
          .execute();
  return nextResults;
}