การเปลี่ยนแปลงเฟรมเวิร์กความเข้ากันได้ (Android 11)

หน้านี้อธิบายการเปลี่ยนแปลงลักษณะการทำงานแต่ละอย่างที่ส่งผลต่อแอปซึ่งเพิ่มลงในเฟรมเวิร์กความเข้ากันได้ใน Android 11 (API ระดับ 30) ใช้รายการนี้ร่วมกับตัวเลือกสำหรับนักพัฒนาแอปและคําสั่ง ADB เพื่อทดสอบและแก้ไขข้อบกพร่องของแอปขณะเตรียมกำหนดเป้าหมายเป็น Android 11

ADD_CONTENT_OBSERVER_FLAGS

รหัสการเปลี่ยนแปลง: 150939131

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สําหรับแอปที่กําหนดเป้าหมายเป็น Android 11 จะมี API สาธารณะแบบโอเวอร์โหลดใหม่ onChange(boolean, Uri, int) ที่มีอาร์กิวเมนต์ flags แบบจำนวนเต็ม

เมธอดใหม่นี้เป็นทางเลือก SDK สาธารณะสําหรับแอปที่ใช้onChange()เมธอดที่โอเวอร์โหลดซึ่งไม่ใช่ SDK และมีอาร์กิวเมนต์จำนวนเต็ม userId

ADMIN_APP_PASSWORD_COMPLEXITY

รหัสการเปลี่ยนแปลง: 123562444

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปผู้ดูแลระบบที่กำหนดเป้าหมายเป็น Android 11 ให้แสดงข้อผิดพลาดทุกครั้งที่แอปกำหนดข้อกำหนดของรหัสผ่านที่ไม่เกี่ยวข้องกับคุณภาพรหัสผ่านที่กำหนดในปัจจุบัน ตัวอย่างเช่น เมื่อตั้งค่าคุณภาพรหัสผ่านเป็น DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED แอปจะตั้งค่าความยาวรหัสผ่านขั้นต่ำไม่ได้ ในกรณีนี้ ก่อนพยายามตั้งค่าความยาวรหัสผ่านขั้นต่ำ แอปควรเรียกใช้เมธอด setPasswordQuality() ก่อน จากนั้นจึงเรียกใช้เมธอด setPasswordMinimumLength()

นอกจากนี้ เมื่อแอปผู้ดูแลระบบที่กำหนดเป้าหมายเป็น Android 11 ลดคุณภาพรหัสผ่าน ระบบจะรีเซ็ตข้อกำหนดรหัสผ่านที่มีอยู่ซึ่งไม่มีผลแล้วเป็นค่าเริ่มต้น

APP_DATA_DIRECTORY_ISOLATION

รหัสการเปลี่ยนแปลง: 143937733

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

แอปที่กำหนดเป้าหมายเป็น Android 11 จะเข้าถึงไฟล์ในไดเรกทอรีข้อมูลส่วนตัวของแอปใดก็ตามไม่ได้อีกต่อไป ไม่ว่า SDK เป้าหมายของแอปอื่นจะเป็นเวอร์ชันใดก็ตาม

ดูข้อมูลเพิ่มเติมได้ที่การเข้าถึงไดเรกทอรีส่วนตัว

APN_READING_PERMISSION_CHANGE_ID

รหัสการเปลี่ยนแปลง: 124107808

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 การเข้าถึงฐานข้อมูล APN จะต้องมีสิทธิ์ Manifest.permission.WRITE_APN_SETTINGS

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่การเข้าถึงแบบอ่านอย่างเดียวที่จำกัดในฐานข้อมูล APN

BACKGROUND_RATIONALE_CHANGE_ID

รหัสการเปลี่ยนแปลง: 147316723

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

ตอนนี้แอปต้องระบุเหตุผลที่ถูกต้องทุกครั้งที่ขอสิทธิ์เข้าถึงตำแหน่งของอุปกรณ์ในเบื้องหลัง

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

CALLBACK_ON_CLEAR_CHANGE

รหัสการเปลี่ยนแปลง: 119147584

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

เมื่อใดก็ตามที่มีการเรียกใช้ Editor.clear ระบบจะเรียกกลับไปยัง OnSharedPreferenceChangeListener.onSharedPreferenceChanged ด้วยคีย์ null

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่การเปลี่ยนแปลงการเรียกกลับสําหรับ OnSharedPreferenceChangeListener

CALLBACK_ON_MORE_ERROR_CODE_CHANGE

รหัสการเปลี่ยนแปลง: 130595455

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

ตอนนี้รหัสข้อผิดพลาดได้ขยายการให้บริการสำหรับ updateAvailableNetworks(List, Executor, Consumer) และ setPreferredOpportunisticDataSubscription(int, boolean, Executor, Consumer) แล้ว

CALL_BACK_ON_CHANGED_LISTENER_WITH_SWITCHED_OP_CHANGE

รหัสการเปลี่ยนแปลง: 148180766

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

นี่เป็นการเปลี่ยนแปลงลักษณะการทำงานเล็กน้อยของ startWatchingMode(String, String, AppOpsManager.OnOpChangedListener) ก่อนที่จะมีการเปลี่ยนแปลงนี้ ระบบจะโทรกลับเพื่อขอการดำเนินการที่เปลี่ยนแล้ว หลังจากการเปลี่ยนแปลง ระบบจะโทรกลับเพื่อขอการดำเนินการที่ขอจริงหรือการดำเนินการที่เปลี่ยนแล้วทั้งหมดหากไม่ได้ระบุการดำเนินการ

CAMERA_MICROPHONE_CAPABILITY_CHANGE_ID

รหัสการเปลี่ยนแปลง: 136219221

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 บริการที่ทำงานอยู่เบื้องหน้าจะได้รับความสามารถของกล้องและไมโครโฟนขณะใช้งานก็ต่อเมื่อมีการกําหนดค่า R.attr.foregroundServiceType เป็น ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA และ ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE ตามลําดับในไฟล์ Manifest ใน Android เวอร์ชันเก่า บริการที่ทำงานอยู่เบื้องหน้าจะได้รับสิทธิ์เข้าถึงกล้องและไมโครโฟนโดยอัตโนมัติ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ประเภทบริการที่ทำงานอยู่เบื้องหน้าใน Android 11

CHANGE_BACKGROUND_CUSTOM_TOAST_BLOCK

รหัสการเปลี่ยนแปลง: 128611929

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

แอปไม่สามารถแสดงข้อความแจ้งแบบกำหนดเองในเบื้องหลังได้อีกต่อไป อย่างไรก็ตาม แอปจะยังคงโพสต์ข้อความแจ้งโดยใช้เมธอด Toast.makeText(Context, CharSequence, int) และรูปแบบต่างๆ ขณะทำงานอยู่เบื้องหลังได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่มีการบล็อกมุมมองข้อความแจ้งแบบกำหนดเอง

CHANGE_RESTRICT_SAW_INTENT

รหัสการเปลี่ยนแปลง: 135920175

สถานะเริ่มต้น: เปลี่ยนการเปลี่ยนแปลงนี้ไม่ได้ เฟรมเวิร์กความเข้ากันได้เท่านั้นที่จะบันทึกข้อมูลนี้

Intent ที่ใช้การดำเนินการ android.settings.MANAGE_APP_OVERLAY_PERMISSION และรูปแบบ URI ของข้อมูล package จะไม่นําผู้ใช้ไปยังหน้าจอเฉพาะแอปสําหรับจัดการสิทธิ์ที่เกี่ยวข้องอีกต่อไป แต่ระบบจะนําผู้ใช้ไปยังหน้าจอที่ผู้ใช้สามารถจัดการแอปทั้งหมดที่ขอสิทธิ์ได้

CHANGE_TEXT_TOASTS_IN_THE_SYSTEM

รหัสการเปลี่ยนแปลง: 147798919

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

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

DEFAULT_SCOPED_STORAGE

รหัสการเปลี่ยนแปลง: 149924527

สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด

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

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

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

EMPTY_INTENT_ACTION_CATEGORY

รหัสการเปลี่ยนแปลง: 151163173

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ตอนนี้ระบบจะแสดงข้อผิดพลาดหาก action หรือ category ของตัวกรอง Intent เป็นสตริงว่าง ข้อบกพร่องในแพลตฟอร์มก่อน Android 11 อนุญาตให้เคสนี้ดำเนินการต่อได้โดยไม่แสดงข้อผิดพลาด โปรดทราบว่ากรณีนี้ไม่รวมกรณีที่แอตทริบิวต์เป็นค่า Null หรือขาดหายไป เนื่องจากจะทำให้เกิดข้อผิดพลาดเสมอ

FILTER_APPLICATION_QUERY

รหัสการเปลี่ยนแปลง: 135549675

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

ตอนนี้แอปต้องประกาศแพ็กเกจและ Intent ที่ต้องการใช้ก่อนจึงจะดูรายละเอียดเกี่ยวกับแอปอื่นๆ ในอุปกรณ์ได้ คุณต้องประกาศโดยใช้แท็ก <queries> ในไฟล์ Manifest ของแอป

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

FORCE_ENABLE_SCOPED_STORAGE

รหัสการเปลี่ยนแปลง: ค่า: 132649864

สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

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

อย่างไรก็ตาม หากแอปยังคงกำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) หรือต่ำกว่า คุณสามารถทดสอบแอปด้วยพื้นที่เก็บข้อมูลแบบจำกัดได้ โดยไม่คำนึงถึงเวอร์ชัน SDK เป้าหมายของแอปและค่า Flag ของไฟล์ Manifest โดยเปิดใช้การเปลี่ยนแปลงนี้

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

GET_DATA_CONNECTION_STATE_R_VERSION

รหัสการเปลี่ยนแปลง: 148535736

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

วิธีตรวจสอบเวอร์ชัน SDK ของ PreciseDataConnectionState#getDataConnectionState

GET_DATA_STATE_R_VERSION

รหัสการเปลี่ยนแปลง: 148534348

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

วิธีตรวจสอบเวอร์ชัน SDK สำหรับ getDataState()

GET_PROVIDER_SECURITY_EXCEPTIONS

รหัสการเปลี่ยนแปลง: 150935354

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป ระบบจะไม่แสดงข้อยกเว้นด้านความปลอดภัยอีกต่อไป getProvider(String)

GET_TARGET_SDK_VERSION_CODE_CHANGE

รหัสการเปลี่ยนแปลง: 145147528

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป

วิธีตรวจสอบเวอร์ชัน SDK สำหรับเมธอด SmsManager.sendResolverResult()

GWP_ASAN

รหัสการเปลี่ยนแปลง: 135634846

สถานะเริ่มต้น: ปิดใช้สำหรับแอปทั้งหมด

เปิดใช้การตรวจหาข้อบกพร่องหน่วยความจําแบบสุ่มตัวอย่างในแอป

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่คู่มือ GWP-ASan

HIDE_MAXTARGETSDK_P_HIDDEN_APIS

รหัสการเปลี่ยนแปลง: 149997251

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป

สําหรับแอปที่กําหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป ระบบจะนำสิทธิ์เข้าถึงอินเทอร์เฟซที่ไม่ใช่ SDK ทั้งหมดซึ่งเป็นส่วนหนึ่งของmax-target-p (greylist-max-p) รายการออกจากแอปสำหรับ Android 10 (API ระดับ 29)

HIDE_MAXTARGETSDK_Q_HIDDEN_APIS

รหัสการเปลี่ยนแปลง: 149994052

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สําหรับแอปที่กําหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป ระบบจะนำสิทธิ์เข้าถึงอินเทอร์เฟซที่ไม่ใช่ SDK ทั้งหมดซึ่งเป็นส่วนหนึ่งของmax-target-q (greylist-max-q) รายการออกจากแอปสำหรับ Android 11 (API ระดับ 30)

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่อินเทอร์เฟซที่ไม่ใช่ SDK ซึ่งตอนนี้ถูกบล็อกใน Android 11

LISTEN_CODE_CHANGE

รหัสการเปลี่ยนแปลง: 147600208

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไป

วิธีตรวจสอบเวอร์ชัน SDK สําหรับ TelephonyManager.listen(PhoneStateListener, int)

MISSING_APP_TAG

รหัสการเปลี่ยนแปลง: 150776642

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ระบบจะแสดงข้อผิดพลาดเมื่อไฟล์ Manifest ของแอปไม่มีแท็ก application หรือ instrumentation

NATIVE_HEAP_POINTER_TAGGING

รหัสการเปลี่ยนแปลง: 135754954

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ตอนนี้การจัดสรรกองหน่วยความจำแบบเนทีฟจะมีแท็กที่ไม่ใช่ 0 ในไบต์ที่มีนัยสำคัญมากที่สุด

ดูข้อมูลเพิ่มเติมได้ที่การติดแท็กตัวชี้กอง

PHONE_STATE_LISTENER_LIMIT_CHANGE_ID

รหัสการเปลี่ยนแปลง: 150880553

สถานะเริ่มต้น: เปิดใช้สำหรับแอปทั้งหมด

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ตอนนี้มีขีดจำกัดจำนวนPhoneStateListener ออบเจ็กต์ที่กระบวนการใดก็ตามสามารถลงทะเบียนผ่าน TelephonyManager.listen(PhoneStateListener, int) ขีดจํากัดเริ่มต้นคือ 50 ซึ่งอาจเปลี่ยนแปลงได้โดยการอัปเดตการกําหนดค่าอุปกรณ์ระยะไกล ระบบจะบังคับใช้ขีดจํากัดนี้โดยใช้ IllegalStateException ที่ TelephonyManager.listen(PhoneStateListener, int) โยนเมื่อกระบวนการที่ละเมิดพยายามลงทะเบียนผู้ฟังมากเกินไป

PREVENT_META_REFLECTION_BLACKLIST_ACCESS

รหัสการเปลี่ยนแปลง: 142365358

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

แอปที่กำหนดเป้าหมายเป็น Android 11 จะใช้การสะท้อนเพิ่มเติมอีกชั้นเพื่อเข้าถึงอินเทอร์เฟซที่ไม่ใช่ SDK ซึ่งถูกจํากัดไม่ได้อีกต่อไป

PROCESS_CAPABILITY_CHANGE_ID

รหัสการเปลี่ยนแปลง: 136274596

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สําหรับแอปที่กําหนดเป้าหมายเป็น Android 11 ตอนนี้คุณใช้ Flag Context.BIND_INCLUDE_CAPABILITIES เพื่อส่งความสามารถขณะใช้งานจากกระบวนการของไคลเอ็นต์ไปยังบริการที่เชื่อมโยงได้แล้ว

REMOVE_ANDROID_TEST_BASE

รหัสการเปลี่ยนแปลง: 133396946

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ระบบจะนำไลบรารี android.test.base ออกหากแอปไม่ได้ใช้ android.test.runner (เนื่องจากแอปใช้คลาสจากไลบรารี android.test.base)

REQUEST_ACCESSIBILITY_BUTTON_CHANGE

รหัสการเปลี่ยนแปลง: 136293963

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

สำหรับบริการช่วยเหลือพิเศษที่กำหนดเป้าหมายเป็น Android 11 ตอนนี้คุณต้องระบุ Flag FLAG_REQUEST_ACCESSIBILITY_BUTTON ในไฟล์ข้อมูลเมตาของบริการช่วยเหลือพิเศษ มิฉะนั้นระบบจะไม่สนใจการแจ้งว่าไม่เหมาะสม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ประกาศการใช้งานปุ่มการช่วยเหลือพิเศษในไฟล์ข้อมูลเมตา

RESOURCES_ARSC_COMPRESSED

รหัสการเปลี่ยนแปลง: 132742131

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

แอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) จะติดตั้งไม่ได้หากมีไฟล์ resources.arsc ที่บีบอัดหรือหากไฟล์นี้ไม่ได้จัดแนวตามขอบเขต 4 ไบต์

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ได้ที่ไฟล์ทรัพยากรที่บีบอัด

RESTRICT_STORAGE_ACCESS_FRAMEWORK

รหัสการเปลี่ยนแปลง: 141600225

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

หากแอปกำหนดเป้าหมายเป็น Android 11 และใช้ Storage Access Framework (SAF) คุณจะเข้าถึงไดเรกทอรีบางรายการโดยใช้การดำเนินการของ Intent ACTION_OPEN_DOCUMENT และ ACTION_OPEN_DOCUMENT_TREE ไม่ได้อีกต่อไป ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ส่วนข้อจำกัดการเข้าถึงเอกสารในหน้าเว็บที่กล่าวถึงการอัปเดตความเป็นส่วนตัวที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลใน Android 11

SELINUX_LATEST_CHANGES

รหัสการเปลี่ยนแปลง: 143539591

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

การเปลี่ยนแปลงนี้จะกำหนดสิทธิ์เข้าถึงโดเมน SELinux untrusted_app_R-targetSDk ให้กับแอป การเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลงพื้นฐานอย่างหนึ่งในเฟรมเวิร์กความเข้ากันได้ที่อนุญาตให้แอปสลับการเปลี่ยนแปลงอื่นๆ ที่ควบคุมโดย targetSdkVersion ได้โดยไม่ต้องเปลี่ยน targetSDKVersion ของแอป คุณจึงไม่ควรปิดใช้การเปลี่ยนแปลงนี้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 ไม่เช่นนั้นแอปจะไม่ทำงาน

การเปลี่ยนแปลงนี้จะไม่มีผลกับแอปที่ใช้รหัสผู้ใช้ที่แชร์

THROW_SECURITY_EXCEPTIONS

รหัสการเปลี่ยนแปลง: 147340954

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

ก่อน Android 11 setEnabled API จะแสดงข้อผิดพลาด SecurityException เฉพาะในกรณีที่เกิดข้อผิดพลาดเกี่ยวกับสิทธิ์เท่านั้น ใน Android 11 จะไม่เป็นไปตามนี้แล้ว และระบบอาจแสดง SecurityException ขึ้นได้เนื่องด้วยเหตุผลหลายประการ ซึ่งจะไม่มีการแสดงต่อผู้เรียก

หากแอปที่ไม่ได้กำหนดเป้าหมายเป็น Android 11 ประสบปัญหาสิทธิ์เดิมไม่ผ่านการตรวจสอบหรือการบังคับใช้แอ็กเตอร์ไม่สำเร็จ ระบบจะบังคับให้ข้อยกเว้นเป็น IllegalStateException ที่มีอยู่เดิมในแหล่งที่มาก่อน Android 11 เพื่อรักษาลักษณะการทำงานเดิมของ API

USE_SET_LOCATION_ENABLED

รหัสการเปลี่ยนแปลง: 117835097

สถานะเริ่มต้น: เปิดใช้สำหรับแอปที่กำหนดเป้าหมายเป็น Android 11 (API ระดับ 30) ขึ้นไป

แอปสำหรับผู้ดูแลระบบที่กำหนดเป้าหมายเป็น Android 11 จะใช้ DevicePolicyManager.setSecureSetting(ComponentName, String, String) เพื่อเปลี่ยนการตั้งค่า Settings.Secure.LOCATION_MODE ที่เลิกใช้งานแล้วไม่ได้อีกต่อไป แต่ควรใช้ DevicePolicyManager.setLocationEnabled(ComponentName, boolean) แทน