สำหรับแอปที่ต้องการความปลอดภัยในการใช้งานสูง บางครั้งก็อาจจะไม่ต้องการให้มีแอปที่เกี่ยวกับ Accessibility ทำงานในระหว่างใช้งานแอป จึงทำให้นักพัฒนาต้องคอยเช็คว่ามีแอปดังกล่าวทำงานอยู่ในระหว่างนั้นหรือไม่

โชคดีที่นักพัฒนาสามารถใช้คำสั่งที่อยู่ใน AccesibiliityManager เพื่อเช็คได้ว่ามีแอปไหนกำลังเปิดใช้งาน Accessibility อยู่บ้าง

val context: Context = /* ... */
val manager = context.getSystemService(AccessibilityManager::class.java)
val enabledServices: List<AccessibilityServiceInfo>? = manager.getEnabledAccessibilityServiceList(AccessibilityServiceInfo.FEEDBACK_ALL_MASK)

ผลลัพธ์ที่ได้จาก getEnabledAccessibilityServiceList จะเป็น List ของ Accessibility Service ที่ทำงานอยู่ ณ ตอนนั้นทั้งหมด

โดย AccessibilityServiceInfo จะมีข้อมูลของ Service สำหรับ Accessibility ที่ทำงานอยู่ให้พอสมควร จึงทำให้นักพัฒนาสามารถเช็คได้ว่าเป็น Service ของแอปไหน ยกตัวอย่างเช่น ID ของ Accessibility Service ตัวนั้น

val info: AccessibilityServiceInfo = /* ... */
val serviceId: String = info.id

// serviceId="dev.akexorcist.remoteaccess/.accessibility.CustomAccessibilityService"

และนอกจากนี้จะเห็นว่าคำสั่ง getEnabledAccessibilityServiceList มีการกำหนด Flag ด้วย ซึ่งเจ้าของบล็อกใช้ FEEDBACK_ALL_MASK เพื่อดู Accessibility Service ที่ทำงานอยู่ทั้งหมด ไม่ว่าจะเป็น Feedback แบบไหนก็ตาม

แต่นักพัฒนาดังกล่าวสามารถกำหนด Flag อื่น เพื่อเอาเฉพาะบาง Feedback ได้เช่นกันนะ

  • FEEDBACK_AUDIBLE
  • FEEDBACK_BRAILLE
  • FEEDBACK_GENERIC
  • FEEDBACK_HAPTIC
  • FEEDBACK_SPOKEN
  • FEEDBACK_VISUAL

เพียงเท่านี้แอปก็สามารถเช็คได้แล้วว่ามีการเปิดใช้งาน Accessibility จากแอปอื่นอยู่ในขณะนั้นหรือป่าว ส่วนจะเอาไปทำอะไรต่อก็แล้วแต่นักพัฒนาเลย