EMM สามารถใช้งานงานด้านการจัดการทั่วไปมากมายในโซลูชันสำหรับองค์กรสำหรับ Android เช่น งานที่แสดงในคู่มือนี้ โค้ดตัวอย่างจะใช้ไลบรารีของไคลเอ็นต์ API ของ Google Play EMM สำหรับ Java®
ค้นหาผู้ใช้และดูรายละเอียดผู้ใช้
API ของ Google Play EMM หลายรายการต้องใช้ userId
(นอกเหนือจาก enterpriseId
) ในการทำงานบางอย่างที่เกี่ยวข้องกับผู้ใช้ เช่น ติดตั้งแอป รับการให้สิทธิ์ และการอนุญาตให้ใช้สิทธิ การเรียกบางครั้งต้องใช้ออบเจ็กต์ผู้ใช้
หากองค์กรใช้บัญชี Managed Google Play คุณจะแมประหว่างอีเมลของผู้ใช้กับรหัสผู้ใช้ของบัญชีเหล่านั้นอย่างต่อเนื่อง เมื่อมีบัญชี Google คุณจะใช้ UsersListResponse
ค้นหาผู้ใช้
ตัวอย่างโค้ดนี้จะได้รับรหัสผู้ใช้ที่เชื่อมโยงกับบัญชี Google แต่จะไม่มีผลกับองค์กรที่ใช้บัญชี Managed Google Play
ตัวอย่างนี้สมมติว่าคุณนำเข้าโมเดล User
และ UsersListResponse
ลงในโค้ดของคุณ หากต้องการรับบัญชีผู้ใช้ที่เฉพาะเจาะจง ให้รับ userId
ของบัญชีนั้นโดยการส่ง enterpriseId
และอีเมลไปที่ UsersListResponse
public UsersListResponse list(String enterpriseId, String email) throws IOException { return androidEnterprise .users() .list(enterpriseId, email) .execute(); }
รับรายละเอียดผู้ใช้
เมื่อมี userId
แล้ว คุณจะดูรายละเอียดอื่นๆ ได้ โปรดดู
Users.Get
public User get(String enterpriseId, String userId) throws IOException { return androidEnterprise .users() .get(enterpriseId, userId) .execute(); }
ให้สิทธิ์เข้าถึงแอปแก่ผู้ใช้
คุณสามารถใช้ API ของ Google Play EMM เพื่อควบคุมแอปที่ผู้ใช้จะเข้าถึงได้ จาก Managed Google Play Store การเข้าถึงแอปรวมถึงความสามารถในการ ค้นหา ดู ติดตั้ง และอัปเดตได้ มีการเข้าถึง 3 แบบ ระดับที่ใช้ได้:
- แอปที่อนุญาตเท่านั้น: ผู้ใช้จะมีสิทธิ์เข้าถึงเฉพาะบางแอปเท่านั้น
- แอปที่ได้รับอนุมัติทั้งหมด: ผู้ใช้มีสิทธิ์เข้าถึงแอปทั้งหมดที่ได้รับอนุมัติสำหรับ องค์กร
- แอปทั้งหมด: ผู้ใช้จะมีสิทธิ์เข้าถึงแอปทั้งหมดที่เผยแพร่ต่อสาธารณะ ใน Google Play Store
ให้สิทธิ์เข้าถึงบางแอปแก่ผู้ใช้เท่านั้น
ตัวอย่างด้านล่างแสดงวิธีให้สิทธิ์เข้าถึงชุดแอปที่เจาะจงแก่ผู้ใช้ จาก Managed Google Play Store กระบวนการนี้ประกอบด้วย ขั้นตอนต่อไปนี้
- รวบรวมรายการ
productIds
(แอป) ที่ได้รับอนุมัติสำหรับผู้ใช้ (productSet) - ระบุว่าผู้ใช้จะเข้าถึงแอปในรายการที่ระบุได้โดยการตั้งค่าของสตริง
productSetBehavior
เป็น"whitelist"
- ใช้รายการ
productIds
และการตั้งค่าพฤติกรรมกับชุดผลิตภัณฑ์ที่ผู้ใช้มีโดยใช้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(); }
ให้สิทธิ์ผู้ใช้เข้าถึงแอปที่ได้รับอนุมัติทั้งหมด
ตัวอย่างด้านล่างแสดงวิธีให้สิทธิ์ผู้ใช้เข้าถึงแอปที่ได้รับอนุมัติ สำหรับองค์กรจาก Managed Google Play Store กระบวนการนี้ประกอบด้วย ขั้นตอนต่อไปนี้
- ระบุว่าผู้ใช้เข้าถึงแอปทั้งหมดที่อนุมัติสำหรับองค์กรได้โดยการตั้งค่าของสตริง
productSetBehavior
เป็น"allApproved"
- ใช้การตั้งค่านี้กับผู้ใช้โดยใช้
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(); }
หมายเหตุ: เมื่อตั้งค่า productSetBehavior
เป็น "allApproved"
คุณไม่จำเป็นต้องระบุ productIds
สำหรับชุดผลิตภัณฑ์
ให้สิทธิ์เข้าถึงแอปทั้งหมดแก่ผู้ใช้
ตัวอย่างด้านล่างแสดงวิธีให้สิทธิ์ผู้ใช้ใน Google ที่มีการจัดการ Play Store เพื่อเข้าถึงแอปที่พร้อมใช้งานใน Google Play Store สาธารณะ ผู้ใช้ที่มีสิทธิ์เข้าถึงแอปทั้งหมดจะยังคงเห็นเลย์เอาต์ของ Store สำหรับ องค์กรเมื่อเปิด Managed Google Play แต่สามารถหาแอปอื่นๆ เพิ่มเติมได้ ผ่านการค้นหา
ผู้ใช้ที่เชื่อถือได้บางราย เช่น ผู้ดูแลระบบไอที อาจต้องการ สิทธิ์เข้าถึงเพื่อทดสอบและประเมินแอปก่อนอนุมัติสำหรับองค์กร กระบวนการให้สิทธิ์ผู้ใช้เข้าถึงแอปทั้งหมดมีขั้นตอนต่อไปนี้
- ระบุว่าผู้ใช้เข้าถึงแอปทั้งหมดใน Google Play Store ได้โดยการตั้งค่าของสตริง
productSetBehavior
เป็น"includeAll"
- ใช้การตั้งค่านี้กับผู้ใช้โดยใช้
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(); }
หมายเหตุ: เมื่อตั้งค่า productSetBehavior
เป็น "includeAll"
คุณไม่จำเป็นต้องระบุ productIds
สำหรับชุดผลิตภัณฑ์
สร้างเลย์เอาต์ของร้านค้า
หลังจากให้สิทธิ์ผู้ใช้เข้าถึงแอปแล้ว ให้จัดกลุ่มแอปออกเป็นคลัสเตอร์เพื่อแสดงผลที่หน้าร้าน Managed Google Play
คุณจะสร้างเลย์เอาต์ของร้านค้าที่กำหนดเองแบบไม่ซ้ำกันสำหรับลูกค้าแต่ละรายได้โดยใช้ API ของ Storelayoutpages
และ Storelayoutclusters
เค้าโครงโดยทั่วไปจะประกอบด้วยชุดหน้าเว็บ และแต่ละหน้าอาจมีกลุ่มของแอปอยู่ คุณใส่แอปที่เกี่ยวข้องไว้ในคลัสเตอร์เดียวกันได้ ดูรายละเอียดและโค้ดตัวอย่างได้ที่ส่วนสร้างเลย์เอาต์ของร้านค้าที่กำหนดเอง
รับสิทธิ์ของแอป
วิธีเพิ่มแอปลงในเลย์เอาต์ของ Store ที่กำหนดเอง (หรือติดตั้งแอปโดยผู้ใช้โดยไม่มีการแจ้งเตือน ) และแสดงแอปเพื่อให้ผู้ใช้เลือก ผู้ดูแลระบบจะต้อง ยอมรับสิทธิ์ของแอปนั้นสำหรับทั้งองค์กร ผู้ดูแลระบบสามารถ ยอมรับสิทธิ์ของแอปและทำเครื่องหมายแอปว่าได้รับอนุมัติให้เผยแพร่ใน "ที่มีการจัดการ" Google Play Console (ดูภาพรวมของ Managed Google Play)
สำหรับแนวทางปฏิบัติที่ดีที่สุด เราขอแนะนำให้ฝัง iframe สิทธิ์ลงใน
คอนโซล EMM ซึ่งหมายความว่าผู้ใช้ไม่ต้องแยกไปยังส่วน
Managed Google Play Console ใช้ Products.getApprovalUrl
เพื่อรับ URL ของ iframe
public String getApprovalUrl(String enterpriseId, String productId) throws IOException { return androidEnterprise .products() .generateApprovalUrl(enterpriseId, productId) .execute() .getUrl(); }
ใช้ Products.approve
เพื่อยอมรับสิทธิ์เหล่านั้น
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(); }
รับอุปกรณ์ของผู้ใช้
คุณต้องระบุอุปกรณ์ที่เชื่อมโยงกับการดำเนินการเฉพาะอุปกรณ์
ผู้ใช้ ตัวอย่างนี้แสดงรายการอุปกรณ์สำหรับ userID
ที่ระบุโดยใช้ DevicesListResponse
public DevicesListResponse list(String enterpriseId, String userId) throws IOException { return androidEnterprise .devices() .list(enterpriseId, userId) .execute(); }
หากผู้ใช้ยอมรับข้อกำหนดในการให้บริการที่ปรากฏเมื่อผู้ใช้พยายามเข้าถึง
Managed Google Play เป็นครั้งแรก การตอบกลับจะรวมอุปกรณ์ที่ไม่มีการจัดการด้วย
(อุปกรณ์ที่มีประเภทการจัดการ unmanagedProfile
)
รับและตั้งค่าสถานะของอุปกรณ์
งานการจัดการนี้ใช้กับองค์กรที่ใช้บัญชี Google เท่านั้น ทั้งนี้ ไม่มีผลกับองค์กรที่ใช้บัญชี Managed Google Play
เมื่อเปิดใช้บัญชี Google ที่มีการจัดการของผู้ใช้ในอุปกรณ์ที่มีการจัดการ การเข้าถึง ไปยังบริการของ Google นั้นเปิดใช้อยู่ (หรือปิดใช้) ตามรายการต่อไปนี้
- สถานะอุปกรณ์
- ผู้ดูแลระบบของโดเมนบังคับใช้นโยบาย EMM หรือไม่ (โดยการตั้งค่า บังคับใช้นโยบาย EMM ในอุปกรณ์ Android ในคอนโซลผู้ดูแลระบบของ Google)
หากการบังคับใช้ EMM ปิดอยู่ ระบบจะไม่สนใจสถานะของอุปกรณ์และบัญชี ได้รับสิทธิ์เข้าถึงบริการของ Google เมื่อใดก็ตามที่มีการเปิดใช้งานในอุปกรณ์ Android หากเปิดใช้การบังคับใช้ EMM แต่สถานะของอุปกรณ์ไม่ใช่ ผู้ใช้จะติดตั้งไม่ได้ แอปพลิเคชันจาก Google Play และ Google Play EMM API จะไม่สามารถติดตั้งเงียบๆ สำหรับผู้ใช้คนนั้นในอุปกรณ์
ตัวอย่างนี้แสดงวิธีดูสถานะของอุปกรณ์หนึ่งๆ (ระบุด้วยการส่งผ่าน
enterpriseId
, userId
และ deviceId
)
getState()
และการดำเนินการ setState()
ใช้ได้กับอุปกรณ์ที่มี managementType
เป็น
managedDevice
หรือ managedProfile
(ในทรัพยากร Devices
) เท่านั้น อุปกรณ์ที่มี
ไม่สามารถควบคุม managementType
ของ unmanagedProfile
ด้วย API เหล่านี้
public DeviceState getState(String enterpriseId, String userId, String deviceId) throws IOException { return androidEnterprise .devices() .getState(enterpriseId, userId, deviceId) .execute(); }
เปิดหรือปิดใช้บริการของ Google สำหรับบัญชีในอุปกรณ์โดยการตั้งค่า
AccountState
เป็นค่าคงที่ที่เหมาะสม
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(); }
พุชการติดตั้งแอปในอุปกรณ์
ผู้ดูแลระบบสามารถติดตั้งแอปพลิเคชันโดยไม่ต้องแจ้งให้ทราบ ไม่จำเป็นต้องโต้ตอบกับผู้ใช้
ตัวอย่างนี้ใช้ Installs.Update
เพื่อติดตั้งแอปแบบเงียบ (ระบุโดย productId
)
ให้กับอุปกรณ์ (ระบุโดย deviceId
)
public Install update(String enterpriseId, String userId, String deviceId, String productId) throws IOException { return androidEnterprise .installs() .update(enterpriseId, userId, deviceId, productId, new Install()) .execute(); }
หากมีแอปอยู่ในอุปกรณ์อยู่แล้วและมีเวอร์ชันอัปเดตพร้อมใช้งาน ระบบจะอัปเดตแอปเป็นเวอร์ชันใหม่
ค้นหาและดาวน์โหลดแอปจากรายการแอปพลิเคชันที่ได้รับอนุมัติ
ผู้ดูแลระบบจะสร้างและจัดการรายการแอปที่ได้รับอนุมัติ ซึ่งพร้อมใช้งานสำหรับผู้ใช้ใน Managed Google Play ผู้ใช้ที่นำอุปกรณ์มาใช้เองที่มีโปรไฟล์งาน และผู้ใช้ในอุปกรณ์ที่เป็นองค์กร ซึ่งองค์กรเป็นผู้จัดการทั้งอุปกรณ์จะสามารถดาวน์โหลดแอปได้จากรายการที่อนุมัตินี้เท่านั้น
คุณสามารถปรับแต่งคอนโซล EMM ให้รวมช่องค้นหาเพื่อให้ผู้ดูแลระบบค้นหาแอปเฉพาะในรายการแอปที่ได้รับอนุมัติเท่านั้น ฟังก์ชันการค้นหาจะยอมรับพารามิเตอร์เดียวกันกับฟังก์ชันการค้นหา Managed Google Play แบบมาตรฐาน แต่จะค้นหาเฉพาะแอปในรายการแอปที่ได้รับอนุมัติเท่านั้น
เช่น หากผู้ดูแลระบบต้องการพุชการติดตั้งแอปที่อยู่ในรายการแอปที่ได้รับอนุมัติไปยังอุปกรณ์ในองค์กร ก็สามารถใช้ฟังก์ชันค้นหานี้ในคอนโซล EMM เพื่อค้นหาแอปได้
คุณสามารถระบุจำนวนผลิตภัณฑ์สูงสุดที่ผลลัพธ์ควรมี เช่น setMaxResults(10L)
เพื่อให้เพียงพอที่จะปรากฏบนหน้าจอ ค่าเริ่มต้นคือ 100 ซึ่งเป็นค่าสูงสุดที่สามารถแสดงผลพร้อมกันในคราวเดียว เมื่อผลลัพธ์มีโทเค็นการใส่เลขหน้า ยังมีผลลัพธ์เพิ่มเติมที่คุณสามารถดึงข้อมูลโดยการส่งโทเค็นการใส่เลขหน้า
ตัวอย่างนี้แสดงวิธีรับผลการค้นหา 10 รายการแรกของการค้นหาแอปเพื่อการทำงาน
ดูProducts.List
public ListsearchProducts(String enterpriseId) throws IOException { ProductsListResponse executeResult = androidEnterprise .products() .list(enterpriseId) .setMaxResults(10L) .setQuery("productivity") .execute(); return executeResult.getProduct(); }
หากผลการค้นหามีโทเค็นการใส่เลขหน้า การค้นหาจะแสดงผลลัพธ์มากกว่า setMaxResults
รายการ หรือมากกว่า 10 รายการในตัวอย่างนี้ หากต้องการเรียกดูผลลัพธ์เพิ่มเติม ให้ทำการค้นหาซ้ำและใส่โทเค็นการใส่เลขหน้าในคำขอ ตัวอย่างนี้ได้รับผลลัพธ์ 10 รายการถัดไป
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; }