ส่งความคิดเห็นเกี่ยวกับแอปไปยัง EMM

ผู้ให้บริการ Enterprise Mobility Management (EMM) นำเสนอโซลูชันสำหรับองค์กร เพื่อจัดการอุปกรณ์ Android และแอปที่ติดตั้งในอุปกรณ์เหล่านั้น โซลูชันเหล่านี้ โดยทั่วไปจะใช้ได้เป็นเว็บคอนโซล ซึ่งเรียกว่าคอนโซล EMM ใช้ EMM รวมถึงผู้ดูแลระบบไอทีจะดำเนินการจัดการอุปกรณ์และแอปในนามของ องค์กร

แอปที่กำหนดเป้าหมายองค์กรองค์กรจะส่งความคิดเห็นไปยัง EMM ได้ในรูปแบบ สถานะแอปหลัก API พร้อมใช้งานสำหรับ EMM เพื่อเรียกข้อมูลสถานะแอปที่เข้ารหัส ซึ่งจะแสดงในคอนโซล EMM ของตนได้ ช่องทางการสื่อสารนี้ ช่วยให้ผู้ดูแลระบบไอทีสามารถรับความคิดเห็นเกี่ยวกับสถานะของแอปที่ติดตั้งใน อุปกรณ์ที่จัดการ

เช่น แอปโปรแกรมรับส่งอีเมลอาจใช้สถานะของแอปที่มีการคีย์เพื่อยืนยันว่า กำหนดค่าบัญชีสำเร็จแล้ว รายงานเมื่อเกิดข้อผิดพลาดในการซิงค์ หรือส่ง การอัปเดตสถานะอื่นๆ ที่นักพัฒนาแอปเห็นว่าเหมาะสม

องค์ประกอบของสถานะแอปคีย์

สถานะของแอปคีย์ประกอบด้วยข้อมูลต่อไปนี้

  • คีย์: ตัวระบุที่ไม่ซ้ำกันสำหรับสถานะแอป สูงสุด 100 อักขระ
  • ข้อความ: ข้อความที่ไม่บังคับซึ่งอธิบายสถานะของแอป สูงสุด 1,000 อักขระ หมายเหตุ: โดยปกติ ข้อความควรสั้นกว่านี้มาก
  • ข้อมูล: ค่าที่ไม่บังคับซึ่งเครื่องอ่านได้สำหรับ EMM เพื่ออนุญาตผู้ดูแลระบบไอที เพื่อตั้งค่าการแจ้งเตือนหรือตัวกรองตามค่า ตัวอย่างเช่น ผู้ดูแลระบบไอทีสามารถ ตั้งค่าการแจ้งเตือนหากช่องข้อมูล battery_percentage < 10 สูงสุด 1,000 อักขระ
  • ความรุนแรง: ความรุนแรงของสถานะแอป ค่าที่อนุญาตคือ SEVERITY_ERROR และ SEVERITY_INFO (ค่าเริ่มต้น) ตั้งค่าความรุนแรงเป็น SEVERITY_ERROR เท่านั้น เพื่อดูเงื่อนไขข้อผิดพลาดที่แท้จริงซึ่งองค์กรต้องดำเนินการเพื่อแก้ไข
  • การประทับเวลา: เมื่อตั้งค่าสถานะแอปคีย์แล้ว ระบบจะส่งข้อมูลนี้พร้อม การประทับเวลาเป็นมิลลิวินาทีตั้งแต่ Epoch

ส่งความคิดเห็นเกี่ยวกับการกำหนดค่าที่มีการจัดการ

หากแอปรองรับการกำหนดค่าที่มีการจัดการ ขอแนะนำให้ส่งสถานะแอปที่สำคัญเป็นวิธีการอัปเดตผู้ดูแลระบบไอทีใน ของการกำหนดค่าไว้ เวิร์กโฟลว์ตัวอย่างต่อไปนี้จะอธิบาย วิธีการอย่างหนึ่งคือ

สถานะแอปคีย์สำหรับการกำหนดค่าที่มีการจัดการ
  1. ผู้ดูแลระบบไอทีใช้คอนโซล EMM เพื่อตั้งค่าและส่งการกำหนดค่าที่มีการจัดการสำหรับ แอปที่ติดตั้งในอุปกรณ์ที่มีการจัดการครบวงจร หรือในโปรไฟล์งาน เช่น
    • ระดับเสียง: "50%"
    • สกุลเงิน: "USDD"
  2. แอปจะพยายามใช้การกำหนดค่าดังกล่าว ตั้งระดับเสียงเรียบร้อยแล้ว ถึง 50% แต่รหัสสกุลเงินไม่ถูกต้องและใช้ไม่ได้
  3. แอปจะตั้งสถานะแอปเป็นคีย์ตามสถานะของการกำหนดค่าแต่ละรายการ สถานะแอปที่ถูกคีย์แต่ละสถานะจะมีคีย์ที่ไม่ซ้ำกันและข้อความที่มีรายละเอียด เราขอแนะนำให้จับคู่คีย์การกำหนดค่าที่มีการจัดการหากเป็นไปได้ เช่น
    คีย์ ข้อความ ความรุนแรง การประทับเวลา
    volume ตั้งค่าเป็น 50% SEVERITY_INFO 1554461130
    currency สกุลเงิน "USDD" ไม่รู้จัก SEVERITY_ERROR 1554461130
  4. ผู้ให้บริการ EMM จะดึงข้อมูลสถานะของแอปคีย์ที่แอปกำหนดไว้และจอแสดงผล ในคอนโซล EMM เช่น
    การกำหนดค่า สถานะ ขอให้ดำเนินการ เวลา
    ระดับเสียง ตั้งค่าเป็น 50% ไม่ 5 เมษายน 2019 10:45:30
    สกุลเงิน ข้อผิดพลาด: สกุลเงิน "USDD" ไม่รู้จัก ใช่ 5 เมษายน 2019 10:45:30

    ผู้ให้บริการ EMM ควรแจ้งสถานะที่ได้รับให้ชัดเจนด้วย SEVERITY_ERROR กับผู้ดูแลระบบไอที ผู้ดูแลระบบไอทีจะดูข้อมูลได้ในคอนโซล EMM และ ดำเนินการเพื่อแก้ไขข้อผิดพลาดในการกำหนดค่าที่ตั้งไว้

รายงานข้อผิดพลาดที่แก้ไขแล้ว

หลังจากแก้ไขข้อผิดพลาดแล้ว ให้ส่งสถานะของแอปติดตามผลทันทีไปยัง ป้องกันไม่ให้ EMM แสดงข้อความแสดงข้อผิดพลาดนั้นโดยไม่มีกำหนดสิ้นสุด การติดตามผลนี้ สถานะควรประกอบด้วย:

  • คีย์เดียวกัน เป็นข้อความแสดงข้อผิดพลาดเริ่มต้น
  • ความรุนแรงระดับ SEVERITY_INFO ซึ่งระบุว่าสถานะไม่ได้อยู่ในสถานะที่ผิดพลาดและไม่ได้ องค์กรจะต้องดำเนินการเพิ่มเติม

เพิ่มการรองรับสถานะของแอปคีย์ลงในแอป

ขั้นตอนด้านล่างอธิบายวิธีผสานรวมสถานะของแอปหลักในแอป

ขั้นตอนที่ 1: เพิ่มที่เก็บ Maven ของ Google ลงในไฟล์ settings.gradle

เพิ่มที่เก็บ Maven ของ Google เป็นตำแหน่งที่เก็บใน settings.gradle ของโปรเจ็กต์ ตามที่แสดงด้านล่าง

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
       google()
  }
}

ขั้นตอนที่ 2: เพิ่มไลบรารีความคิดเห็นขององค์กรลงในไฟล์ build.gradle ระดับโมดูล

เพิ่มทรัพยากร Dependency ต่อไปนี้ในระดับโมดูล build.gradle ไฟล์:

dependencies {
    implementation 'androidx.enterprise:enterprise-feedback:1.0.0'
}

ขั้นตอนที่ 3: รับอินสแตนซ์ของ KeyedAppStatesReporter

ในเมธอด onCreate() ให้รับและจัดเก็บอินสแตนซ์ของ KeyedAppStatesReporter การดำเนินการนี้จะเปิดใช้ช่องทางการสื่อสารระหว่างแอปและผู้ให้บริการ EMM

Kotlin

val reporter = KeyedAppStatesReporter.create(context)

Java

KeyedAppStatesReporter reporter = KeyedAppStatesReporter.create(context);

ขั้นตอนที่ 4: สร้างคอลเล็กชันสถานะของแอปหลัก

ทำตามแนวทางปฏิบัติแนะนำด้านล่างเมื่อสร้างสถานะของแอปที่มีคีย์

  • ไม่ใส่ข้อมูลส่วนบุคคลที่ระบุตัวบุคคลนั้นได้ (PII) ในสถานะ สถานะของแอปที่ผูกกับดังกล่าวจะไม่ เหมาะสำหรับข้อมูลที่ละเอียดอ่อน
  • ทำให้สถานะของแอปที่สำคัญอยู่ภายในขีดจำกัดที่กำหนดไว้ใน MAX_KEY_LENGTH MAX_MESSAGE_LENGTH, และ MAX_DATA_LENGTH
  • การโทร setStates หรือ setStatesImmediate ครั้งเดียวจะมีขีดจำกัดรวม 300 KB (ประมาณ 1/3 ของจำนวนทั้งหมดที่เก็บได้ต่อวัน) หากเกินค่านี้ จะทำให้ระบุลักษณะการทำงานไม่ได้
  • ตั้งค่าเฉพาะความรุนแรงของรัฐเป็น SEVERITY_ERROR หากมีเงื่อนไขที่องค์กรต้องดำเนินการแก้ไข
  • เมื่อส่งสถานะแอปที่มีข้อผิดพลาด อย่าลืมส่ง สถานะติดตามผลเมื่อข้อผิดพลาดได้รับการแก้ไขแล้ว เพื่อให้ EMM หยุดการแจ้ง ในคอนโซลของผู้ใช้
  • สำหรับสถานะการติดตามผล ให้ใช้ key เป็น สถานะเริ่มต้นที่แสดงข้อผิดพลาดและตั้งค่าความรุนแรงเป็น SEVERITY_INFO

ข้อมูลโค้ดด้านล่างสร้างคอลเล็กชันสถานะของแอปคีย์ต่างๆ

Kotlin

    val states = hashSetOf(KeyedAppState.builder()
             .setKey("key")
             .setSeverity(KeyedAppState.SEVERITY_INFO)
             .setMessage("message")
             .setData("data")
             .build())
    

Java

    Collection states = new HashSet<>();
    states.add(KeyedAppState.builder()
     .setKey("key")
     .setSeverity(KeyedAppState.SEVERITY_INFO)
     .setMessage("message")
     .setData("data")
     .build());
    

ขั้นตอนที่ 5: ตั้งค่าสถานะแอปคีย์

setStates() จะส่งสถานะของแอปที่เข้ารหัสไปยังแอป Play Store ทันที (ชื่อแพ็กเกจ: com.android.vending) หากติดตั้งไว้ในอุปกรณ์ รวมถึงผู้ดูแลระบบของ อุปกรณ์หรือโปรไฟล์งาน

Kotlin

keyedAppStatesReporter.setStates(states)

Java

keyedAppStatesReporter.setStates(states);

ทดสอบสถานะของแอปคีย์

ดูวิธีการทดสอบโดยละเอียดได้ที่ความคิดเห็นของแอปทดสอบ