งานการจัดการทั่วไป

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 ปิดอยู่ ระบบจะไม่สนใจสถานะของอุปกรณ์และบัญชี ได้รับสิทธิ์เข้าถึงบริการของ 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 List searchProducts(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;
}