ㅤ
สำหรับใครที่เข้ามาอ่านและไม่ใช่นักพัฒนาแอนดรอยด์ ต้องบอกก่อนว่าตั้งแต่ Android 11 เป็นต้นมาจะมีฟีเจอร์ที่เรียกว่า Package Visibility ที่ทำให้แอปภายในเครื่องไม่สามารถเห็นแอปอื่น ๆ ที่ติดตั้งอยู่ในเครื่องเดียวกันได้ ด้วยเหตุผลทางด้าน User Privacy เช่น แอปที่แอบวิเคราะห์ Lifestyle ของผู้ใช้โดยดูจากแอปที่ติดตั้งอยู่ในเครื่อง
ㅤ
ดังนั้นตั้งแต่ Android 11 เป็นต้นมา แอปที่ต้องการมองเห็นแอปอื่นภายในเครื่อง ก็จะต้อง "ระบุชื่อแอปแบบเจาะจง" ไว้ใน <queries> ที่พูดถึงในต้นโพสต์นั่นเอง
ㅤ
ยกตัวอย่างเช่น ทำแอปขายของ ก็อยากจะให้ผู้ใช้กดปุ่มแชร์แล้วแสดงหน้าต่างโผล่ขึ้นมาเพื่อให้เลือกส่งลิงก์เข้าแอปบางตัวได้ทันที เช่น IG, FB, X, หรือ LINE ก็จะต้องเช็คก่อนว่ามีแอปเหล่านั้นอยู่ในเครื่องหรือเปล่าถ้ามีก็ให้แสดงไอคอนแอปนั้นเพื่อให้กดแชร์ไปได้ และจะไม่แสดงถ้าไม่มีแอปนั้นนั่นเอง ดังนั้นก็จะต้องประกาศชื่อของแอปเหล่านี้ไว้ใน <queries> ไว้ด้วย
ㅤ
การทำแบบนี้จะเป็นการแสดงความบริสุทธิ์ใจประมาณนึงว่า "แอปของเรามีการเช็กแอปพวกนี้ในเครื่องด้วยนะ เพราะมันมีฟีเจอร์ที่เราจำเป็นต้องใช้นะ" และส่งผลต่อการรีวิวของทีม Google Play
ㅤ
และ Package Visibility จะไม่มีผลกับแอปธนาคารหรือ Antivirus เพราะถือเป็นข้อยกเว้น เนื่องจากมีความจำเป็นต้องเช็กแอปภายในเครื่องด้วยเหตุผลด้านความปลอดภัยอยู่แล้ว ก็เลยไม่ต้องประกาศรายชื่อแอปไว้ใน <queries> เหมือนกับแอปทั่ว ๆ ไป
ㅤ
โดยแอปส่วนใหญ่จะประกาศรายชื่อแอปไว้ใน <queries> ไม่ถึง 50 ตัวกันหรอก ส่วนใหญ่จะประกาศเท่าที่จำเป็นต้องใช้เท่านั้น เพื่อไม่ให้มีปัญหากับทาง Google Play ในภายหลัง
ㅤ
แต่สำหรับแอป Shopee นั้นประกาศไว้มากกว่า 700 แอปเลยทีเดียว ถือว่าเป็นครั้งแรกเช่นกันที่เจอแอปที่ประกาศ <queries> ไว้เยอะขนาดนี้ ซึ่งมีหลากหลายประเภทมากเช่น (เกม, ธนาคาร, ช็อปปิ้ง, ดูหนัง, กล้อง ฯลฯ) ต่อให้ตัดแอปที่น่าจะเกี่ยวกับบางฟีเจอร์ออกไปก็ยังถือว่าเยอะอยู่ดี
ㅤ
ใส่มาเยอะซะจนอยากรู้เลยว่าภายในแอปมีฟีเจอร์อะไรที่จำเป็นต้องการมองเห็นแอปภายในเครื่องเยอะขนาดนี้ และที่สำคัญไปกว่านั้น แอปผ่านการรีวิวของทีม Google Play มาได้ยังไง