กำหนดค่าและจัดการการเป็นเจ้าของการอัปเดตสำหรับแอป

เมื่อ Store หรือโปรแกรมติดตั้งติดตั้งแอปแล้ว Store หรือโปรแกรมติดตั้ง ถือว่าเป็น "โปรแกรมติดตั้งระเบียน" ซึ่งหมายถึงผู้ติดตั้งแอปคนล่าสุด ก่อน Android 14 นั้น Android อนุญาตให้ Store หรือโปรแกรมติดตั้งแอปอื่นกลายเป็น โปรแกรมติดตั้งบันทึกและอัปเดตแอปโดยไม่ต้องแจ้งผู้ใช้

ใน Android 14 โปรแกรมติดตั้งเริ่มต้นของแอปสามารถประกาศตนเอง "อัปเดตเจ้าของ" และเป็นเจ้าของการอัปเดตแอป หากผู้ติดตั้งรายอื่นพยายามอัปเดตแอป ผู้ใช้งานจะมีโอกาสอนุมัติการอัปเดตใหม่ก่อนที่จะดำเนินการต่อ

เลือกใช้แพ็กเกจเพื่ออัปเดตการเป็นเจ้าของ

หากต้องการประกาศว่า Store หรือโปรแกรมติดตั้งเป็นเจ้าของแพ็กเกจแอป ใส่แท็ก update-ownership ใน XML sysconfig สำหรับแต่ละแพ็กเกจเป็น ดังต่อไปนี้:

<update-ownership package="com.example.application" installer="com.example.installer" />

ในตัวอย่างนี้ com.example.application คือแพ็กเกจแอปที่จะเป็นเจ้าของและ com.example.installer เป็นเจ้าของแพ็กเกจ เมื่อมีการเลือกใช้แพ็กเกจ เพื่ออัปเดตการเป็นเจ้าของ ร้านค้าหรือผู้ติดตั้งที่ได้รับสิทธิ์อื่นๆ จะต้องดำเนินการต่อไปนี้ จัดการเจ้าของอัปเดตและขอความยินยอมจากผู้ใช้เพื่ออัปเดตแอป

เลือกไม่ให้แพ็กเกจไม่เปลี่ยนการเป็นเจ้าของ

คุณเลือกให้ร้านค้าหรือโปรแกรมติดตั้งเลือกไม่ขายแพ็กเกจบางส่วนได้ อัปเดตการเปลี่ยนแปลงเจ้าของด้วยการระบุรายการที่ปฏิเสธใน APK รวมแพ็กเกจ ในรายการนี้ ไม่มี Store หรือโปรแกรมติดตั้งที่ขออัปเดตการเป็นเจ้าของแพ็กเกจได้

วิธีเลือกไม่ให้ร้านค้าหรือโปรแกรมติดตั้งอื่นอัปเดตแพ็กเกจได้

  1. รวมพร็อพเพอร์ตี้ต่อไปนี้ไว้ใน Store เดิมหรือของโปรแกรมติดตั้ง AndroidManifest.xml ไฟล์:

    <application …>
      <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST"
                android:resource="@xml/legacyOwnershipDenylist" />
    </application>
    

    ตัวอย่างนี้อ้างอิงถึงรายการ XML ที่ปฏิเสธชื่อ legacyOwnershipDenylist

  2. สร้างรายการที่ปฏิเสธเป็นทรัพยากร XML แบบ Raw ที่มีรูปแบบต่อไปนี้

    <deny-ownership>com.example.app1</deny-ownership>
    <deny-ownership>com.example.app2</deny-ownership>
    

หากร้านค้าหรือโปรแกรมติดตั้งขอสิทธิ์การเป็นเจ้าของแพ็กเกจในรายการที่ปฏิเสธ ระบบจะไม่ให้สิทธิ์การเป็นเจ้าของ และแพ็กเกจจะยังติดตั้งอยู่ แต่จะไม่มี โปรแกรมติดตั้งใดก็ตาม นอกจากนี้ แอปพลิเคชันบน ไม่มีใครเป็นเจ้าของรายการที่ปฏิเสธ

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

จัดการเจ้าของอัปเดตและขอความยินยอมจากผู้ใช้

สำหรับ Android 14 แม้ว่า Store หรือโปรแกรมติดตั้งแอปจะมี android.permission.INSTALL_PACKAGES ก็ยังคงต้องจัดการ STATUS_PENDING_USER_ACTION สถานะว่าต้องการอัปเดตแอปที่มีการอัปเดตเป็นของ Store หรือโปรแกรมติดตั้งอื่นหรือไม่

แอปตัวอย่าง InstallAPKSessionApi.java ยังแสดงวิธีจัดการ STATUS_PENDING_USER_ACTION ด้วย

สร้างความเป็นเจ้าของแอปที่โหลดล่วงหน้า

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