Nền tảng Android 17 có các thay đổi về hành vi có thể ảnh hưởng đến ứng dụng của bạn. Những thay đổi về hành vi sau đây áp dụng cho tất cả ứng dụng khi chạy trên Android 17, bất kể targetSdkVersion. Bạn nên kiểm thử ứng dụng rồi sửa đổi để hỗ trợ những thay đổi này cho phù hợp (nếu cần).
Ngoài ra, hãy nhớ tham khảo danh sách các thay đổi về hành vi chỉ ảnh hưởng đến những ứng dụng nhắm đến Android 17.
Bảo mật
Android 17 có những điểm cải tiến sau đây về tính bảo mật của thiết bị và ứng dụng.
Kế hoạch ngừng sử dụng usesClearTraffic
Trong một bản phát hành trong tương lai, chúng tôi dự định sẽ ngừng sử dụng phần tử usesCleartextTraffic.
Những ứng dụng cần tạo kết nối không mã hoá (HTTP) nên di chuyển sang sử dụng tệp cấu hình bảo mật mạng. Tệp này cho phép bạn chỉ định những miền mà ứng dụng cần tạo kết nối văn bản thô.
Xin lưu ý rằng các tệp cấu hình bảo mật mạng chỉ được hỗ trợ trên API cấp 24 trở lên. Nếu ứng dụng của bạn có cấp độ API tối thiểu thấp hơn 24, bạn nên thực hiện cả hai việc sau:
- Đặt thuộc tính
usesCleartextTrafficthànhtrue - Sử dụng tệp cấu hình mạng
Nếu cấp độ API tối thiểu của ứng dụng là 24 trở lên, bạn có thể sử dụng tệp cấu hình mạng và không cần đặt usesCleartextTraffic.
Hạn chế các quyền ngầm định đối với URI
Hiện tại, nếu một ứng dụng chạy một ý định có URI với thao tác Send, SendMultiple hoặc ImageCapture, thì hệ thống sẽ tự động cấp quyền đọc và ghi URI cho ứng dụng đích. Chúng tôi dự định thay đổi hành vi này trong Android 18. Vì lý do này, bạn nên cấp quyền URI một cách rõ ràng cho các ứng dụng có liên quan thay vì dựa vào hệ thống để cấp quyền.
Trải nghiệm người dùng và giao diện người dùng hệ thống
Android 17 có những thay đổi sau đây nhằm mang đến trải nghiệm nhất quán và trực quan hơn cho người dùng.
Khôi phục chế độ hiển thị IME mặc định sau khi xoay
Kể từ Android 17, khi cấu hình của thiết bị thay đổi (ví dụ: thông qua thao tác xoay) và ứng dụng không tự xử lý việc này, thì chế độ hiển thị IME trước đó sẽ không được khôi phục.
Nếu ứng dụng của bạn trải qua một thay đổi về cấu hình mà ứng dụng không xử lý và ứng dụng cần bàn phím hiển thị sau khi thay đổi, thì bạn phải yêu cầu rõ ràng điều này. Bạn có thể gửi yêu cầu này theo một trong những cách sau:
- Đặt thuộc tính
android:windowSoftInputModethànhstateAlwaysVisible. - Yêu cầu bàn phím ảo theo phương thức lập trình trong phương thức
onCreate()của hoạt động hoặc thêm phương thứconConfigurationChanged().
Nội dung nghe nhìn
Android 17 có những thay đổi sau đây về hành vi của nội dung nghe nhìn.
Tăng cường bảo mật âm thanh ở chế độ nền
Kể từ Android 17, khung âm thanh sẽ thực thi các quy tắc hạn chế đối với hoạt động tương tác âm thanh ở chế độ nền, bao gồm cả việc phát âm thanh, yêu cầu lấy tiêu điểm âm thanh và API thay đổi âm lượng để đảm bảo người dùng chủ ý bắt đầu những thay đổi này.
Nếu ứng dụng cố gắng gọi các API âm thanh khi ứng dụng không ở trong một vòng đời hợp lệ, thì các API phát âm thanh và thay đổi âm lượng sẽ âm thầm không hoạt động mà không đưa ra một ngoại lệ hoặc cung cấp thông báo lỗi. API lấy tiêu điểm âm thanh không thành công với mã kết quả AUDIOFOCUS_REQUEST_FAILED.
Để biết thêm thông tin, bao gồm cả các chiến lược giảm thiểu, hãy xem phần Tăng cường bảo mật cho âm thanh nền.