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 User
và UsersListResponse
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ụngsetAvailableProductSet
.
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
và 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:
- Trạng thái thiết bị.
- Quản trị viên của miền có thực thi các chính sách EMM hay không (theo chế độ cài đặt Thực thi chính sách EMM trên thiết bị Android trong Bảng điều khiển dành cho quản trị viên của Google).
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
, userId
và deviceId
).
getState()
và 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 ListsearchProducts(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; }