Android 6.0 (M) cung cấp các tính năng mới cho người dùng và nhà phát triển ứng dụng. Tài liệu này giới thiệu về các API đáng chú ý nhất.
Bắt đầu phát triển
Để bắt đầu xây dựng ứng dụng cho Android 6.0, trước tiên, bạn phải nhận SDK Android. Sau đó, hãy sử dụng Trình quản lý SDK để tải xuống Nền tảng SDK Android 6.0 và Hình ảnh hệ thống.
Cập nhật cấp độ API mục tiêu của bạn
Để tối ưu hoá ứng dụng của bạn hiệu quả hơn cho các thiết bị chạy Android ,
đặt targetSdkVersion
của bạn thành
"23"
, hãy cài đặt ứng dụng của bạn trên Android
hình ảnh hệ thống, kiểm thử rồi xuất bản ứng dụng đã cập nhật cùng
thay đổi này.
Bạn có thể sử dụng API của Android mà vẫn hỗ trợ các phiên bản cũ
các phiên bản bằng cách thêm các điều kiện vào mã để kiểm tra cấp độ API của hệ thống
trước khi thực thi các API mà minSdkVersion
của bạn không hỗ trợ.
Để tìm hiểu thêm về cách duy trì khả năng tương thích ngược, hãy đọc bài viết Hỗ trợ
Nhiều phiên bản nền tảng.
Để biết thêm thông tin về cách hoạt động của các cấp độ API, hãy đọc bài viết API là gì Cấp độ?
Xác thực bằng vân tay
Bản phát hành này cung cấp các API mới để cho phép bạn xác thực người dùng bằng cách sử dụng tính năng quét vân tay của họ trên thiết bị được hỗ trợ, Sử dụng các API này cùng với hệ thống Kho khoá Android.
Để xác thực người dùng bằng tính năng quét vân tay, hãy tải một phiên bản của
FingerprintManager
và gọi phương thức
authenticate()
. Ứng dụng của bạn phải đang chạy trên một
thiết bị có cảm biến vân tay. Bạn phải triển khai giao diện người dùng cho vân tay số
quy trình xác thực trên ứng dụng của bạn và sử dụng biểu tượng vân tay số tiêu chuẩn của Android trong giao diện người dùng.
Biểu tượng vân tay Android (c_fp_40px.png
) có trong
Mẫu xác thực bằng sinh trắc học.
Nếu bạn đang phát triển nhiều ứng dụng sử dụng tính năng xác thực bằng vân tay, hãy lưu ý rằng từng ứng dụng phải
xác thực vân tay của người dùng một cách độc lập.
Để sử dụng tính năng này trong ứng dụng của bạn, trước tiên hãy thêm
Quyền USE_FINGERPRINT
trong tệp kê khai.
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
Để xem cách triển khai ứng dụng xác thực bằng vân tay, hãy tham khảo Mẫu xác thực bằng sinh trắc học. Để xem minh hoạ cách bạn có thể sử dụng các phương pháp xác thực này API cùng với các API Android khác, hãy xem video này API vân tay số và API thanh toán.
Nếu bạn đang thử nghiệm tính năng này, hãy làm theo các bước sau:
- Cài đặt Bản sửa đổi 24.3 của Bộ công cụ SDK Android (nếu bạn chưa cài đặt).
- Đăng ký vân tay mới trong trình mô phỏng bằng cách chuyển đến Cài đặt > Bảo mật > Vân tay, sau đó làm theo hướng dẫn đăng ký.
- Sử dụng trình mô phỏng để mô phỏng các sự kiện chạm vân tay thông qua
sau đây. Dùng chính lệnh này để mô phỏng các sự kiện chạm vân tay trên màn hình khoá hoặc
trong ứng dụng của bạn.
adb -e emu finger touch <finger_id>
Trên Windows, bạn có thể phải chạy
telnet 127.0.0.1 <emulator-id>
, sau đó làfinger touch <finger_id>
Xác nhận thông tin đăng nhập
Ứng dụng của bạn có thể xác thực người dùng dựa trên lần gần đây nhất họ mở khoá thiết bị. Chiến dịch này giúp người dùng không phải nhớ mật khẩu bổ sung dành riêng cho ứng dụng và tránh phải sử dụng để bạn triển khai giao diện người dùng xác thực của riêng mình. Ứng dụng của bạn nên dùng tính năng này trong kết hợp với việc triển khai khoá công khai hoặc khoá bí mật để xác thực người dùng.
Để đặt khoảng thời gian chờ mà có thể sử dụng lại cùng một khoá sau khi người dùng hoàn tất
đã xác thực, hãy gọi
setUserAuthenticationValidityDurationSeconds()
Khi thiết lập một KeyGenerator
hoặc
KeyPairGenerator
.
Tránh hiển thị hộp thoại xác thực lại quá nhiều lần -- ứng dụng của bạn nên thử sử dụng
trước tiên và nếu hết thời gian chờ, hãy sử dụng
createConfirmDeviceCredentialIntent()
để xác thực lại người dùng trong ứng dụng của bạn.
Liên kết ứng dụng
Bản phát hành này cải thiện hệ thống ý định của Android bằng cách cung cấp tính năng liên kết ứng dụng mạnh mẽ hơn. Tính năng này cho phép bạn liên kết một ứng dụng với một miền web mà bạn sở hữu. Dựa trên thông tin này mối liên kết nào, nền tảng có thể xác định ứng dụng mặc định dùng để xử lý một và bỏ qua việc nhắc người dùng chọn ứng dụng. Để tìm hiểu cách triển khai tính năng này, hãy xem Xử lý đường liên kết ứng dụng.
Tự động sao lưu cho ứng dụng
Lúc này, hệ thống sẽ tự động sao lưu và khôi phục toàn bộ dữ liệu cho các ứng dụng. Ứng dụng của bạn phải nhắm đến Android 6.0 (API cấp 23) để cho phép hành vi này; bạn không cần thêm bất kỳ mã bổ sung nào. Nếu người dùng xoá Tài khoản Google của họ, dữ liệu sao lưu của họ cũng sẽ bị xoá. Để tìm hiểu cách làm hoạt động và cách định cấu hình dữ liệu cần sao lưu trên hệ thống tệp, hãy xem Định cấu hình tính năng tự động sao lưu cho ứng dụng.
Chia sẻ trực tiếp
Bản phát hành này cung cấp cho bạn các API để giúp người dùng chia sẻ trực quan và nhanh chóng. Bạn có thể làm điều này ngay bây giờ xác định mục tiêu chia sẻ trực tiếp khởi chạy một hoạt động cụ thể trong ứng dụng của bạn. Các tỷ lệ chia sẻ trực tiếp mục tiêu được hiển thị với người dùng qua menu Chia sẻ. Tính năng này cho phép người dùng chia sẻ nội dung vào mục tiêu, chẳng hạn như danh bạ, trong các ứng dụng khác. Ví dụ: mục tiêu chia sẻ trực tiếp có thể khởi chạy hoạt động trong ứng dụng mạng xã hội khác, điều này cho phép người dùng chia sẻ nội dung trực tiếp tới bạn bè hoặc cộng đồng cụ thể trong ứng dụng đó.
Để bật mục tiêu chia sẻ trực tiếp, bạn phải xác định một lớp mở rộng
Lớp ChooserTargetService
. Khai báo
trong tệp kê khai. Trong phần khai báo đó, hãy chỉ định
Quyền BIND_CHOOSER_TARGET_SERVICE
và
bộ lọc ý định bằng cách sử dụng
Hành động SERVICE_INTERFACE
.
Ví dụ sau cho thấy cách bạn có thể khai báo
ChooserTargetService
trong tệp kê khai.
<service android:name=".ChooserTargetService" android:label="@string/service_name" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> <intent-filter> <action android:name="android.service.chooser.ChooserTargetService" /> </intent-filter> </service>
Đối với mỗi hoạt động mà bạn muốn hiển thị
ChooserTargetService
, hãy thêm một
Phần tử <meta-data>
có tên
"android.service.chooser.chooser_target_service"
trong tệp kê khai ứng dụng của bạn.
<activity android:name=".MyShareActivity” android:label="@string/share_activity_label"> <intent-filter> <action android:name="android.intent.action.SEND" /> </intent-filter> <meta-data android:name="android.service.chooser.chooser_target_service" android:value=".ChooserTargetService" /> </activity>
Tương tác bằng giọng nói
Bản phát hành này cung cấp một API tương tác bằng giọng nói mới, cùng với
Thao tác bằng giọng nói,
giúp bạn đưa trải nghiệm thoại trò chuyện vào ứng dụng của mình. Gọi
Phương thức isVoiceInteraction()
để xác định xem thao tác bằng giọng nói có được kích hoạt hay không
hoạt động của bạn. Nếu có, ứng dụng của bạn có thể sử dụng
VoiceInteractor
để yêu cầu người dùng xác nhận bằng giọng nói, hãy chọn
từ danh sách các lựa chọn và nhiều lựa chọn khác.
Hầu hết các hoạt động tương tác bằng giọng nói đều bắt nguồn từ thao tác bằng giọng nói của người dùng. Một hoạt động tương tác bằng giọng nói có thể
tuy nhiên, có thể bắt đầu mà không cần hoạt động đầu vào của người dùng. Ví dụ: một ứng dụng khác chạy qua một giọng nói
tương tác cũng có thể gửi ý định khởi chạy một tương tác bằng giọng nói. Để xác định xem hoạt động của bạn có đang hoạt động hay không
được khởi chạy từ truy vấn bằng giọng nói của người dùng hoặc từ một ứng dụng tương tác bằng giọng nói khác, hãy gọi
isVoiceInteractionRoot()
. Nếu một ứng dụng khác phát hành
thì phương thức sẽ trả về false
. Sau đó, ứng dụng của bạn có thể nhắc người dùng xác nhận rằng
họ cố ý thực hiện hành động này.
Để tìm hiểu thêm về cách triển khai thao tác bằng giọng nói, hãy xem Trang web dành cho nhà phát triển tính năng Tác vụ thoại.
API hỗ trợ
Bản phát hành này cung cấp một cách mới để người dùng tương tác với ứng dụng của bạn thông qua trợ lý. Để sử dụng , người dùng phải cho phép trợ lý sử dụng ngữ cảnh hiện tại. Sau khi được bật, người dùng có thể gọi trợ lý trong bất kỳ ứng dụng nào bằng cách nhấn và giữ nút Màn hình chính.
Ứng dụng của bạn có thể chọn không chia sẻ ngữ cảnh hiện tại với trợ lý bằng cách đặt
Cờ FLAG_SECURE
. Ngoài
tập hợp thông tin chuẩn mà nền tảng chuyển đến trợ lý, ứng dụng của bạn có thể chia sẻ
thông tin bổ sung bằng cách sử dụng lớp AssistContent
mới.
Để cung cấp cho trợ lý bối cảnh bổ sung từ ứng dụng của bạn, hãy làm theo các bước sau:
- Triển khai giao diện
Application.OnProvideAssistDataListener
. - Đăng ký trình nghe này bằng cách sử dụng
registerOnProvideAssistDataListener()
. - Để cung cấp thông tin theo ngữ cảnh theo hoạt động cụ thể, hãy ghi đè
onProvideAssistData()
và tuỳ chọn lệnh gọi lại mớionProvideAssistContent()
.
Thiết bị lưu trữ tích hợp
Với bản phát hành này, người dùng có thể sử dụng thiết bị lưu trữ bên ngoài như thẻ SD. Sử dụng
thiết bị lưu trữ bên ngoài mã hoá và định dạng thiết bị để thiết bị hoạt động như bộ nhớ trong. Chiến dịch này
cho phép người dùng di chuyển cả ứng dụng và dữ liệu riêng tư của ứng dụng đó giữa các thiết bị lưu trữ. Thời gian
khi bạn di chuyển ứng dụng, hệ thống sẽ tuân theo
android:installLocation
lựa chọn ưu tiên trong tệp kê khai.
Nếu ứng dụng của bạn truy cập vào các API hoặc trường sau đây, hãy lưu ý rằng các đường dẫn tệp mà chúng trả về sẽ tự động thay đổi khi ứng dụng được di chuyển giữa thiết bị bộ nhớ trong và thiết bị lưu trữ bên ngoài. Khi tạo đường dẫn tệp, bạn nên luôn gọi các API này một cách linh động. Đừng sử dụng đường dẫn tệp được cố định giá trị trong mã hoặc giữ lại đường dẫn tệp đủ điều kiện đã được tạo trước đây.
Context
phương thức:- Trường
ApplicationInfo
:
Để gỡ lỗi tính năng này, bạn có thể cho phép sử dụng ổ USB đã kết nối với thiết bị Android qua cáp USB Khi di chuyển (OTG) bằng cách chạy lệnh sau:
$ adb shell sm set-force-adoptable true
Thông báo
Bản phát hành này bổ sung các thay đổi sau đây về API đối với thông báo:
- Cấp bộ lọc
INTERRUPTION_FILTER_ALARMS
mới tương ứng với chế độ không làm phiền mới Chỉ báo thức. - Giá trị danh mục
CATEGORY_REMINDER
mới được dùng để phân biệt lời nhắc do người dùng lên lịch với các sự kiện khác (CATEGORY_EVENT
) và các chuông báo (CATEGORY_ALARM
). - Lớp học
Icon
mới mà bạn có thể đính kèm vào thông báo quasetSmallIcon()
vàsetLargeIcon()
. Tương tự, Phương thứcaddAction()
hiện chấp nhận đối tượngIcon
thay vì đối tượng mã tài nguyên có thể vẽ. - Phương thức
getActiveNotifications()
mới cho phép để tìm hiểu xem thông báo nào của họ hiện đang hoạt động.
Hỗ trợ bút cảm ứng Bluetooth
Bản phát hành này cải thiện tính năng hỗ trợ hoạt động nhập của người dùng bằng bút cảm ứng Bluetooth. Người dùng có thể ghép nối
và kết nối bút cảm ứng Bluetooth tương thích với điện thoại hoặc máy tính bảng của họ. Khi đã kết nối, hãy định vị
thông tin từ màn hình cảm ứng được hợp nhất với thông tin về áp lực và nút từ bút cảm ứng để
thể hiện nhiều cảm xúc hơn so với khi chỉ dùng màn hình cảm ứng. Ứng dụng của bạn có thể nghe
nhấn nút trên bút cảm ứng và thực hiện các thao tác phụ bằng cách đăng ký
View.OnContextClickListener
và
Đối tượng GestureDetector.OnContextClickListener
trong hoạt động của bạn.
Dùng các phương thức và hằng số MotionEvent
để phát hiện nút trên bút cảm ứng
tương tác:
- Nếu người dùng chạm vào bút cảm ứng bằng một nút trên màn hình ứng dụng của bạn,
Trả về phương thức
getTooltype()
TOOL_TYPE_STYLUS
- Đối với ứng dụng nhắm đến Android 6.0 (API cấp 23),
getButtonState()
phương thức trả vềBUTTON_STYLUS_PRIMARY
khi người dùng nhấn nút bút cảm ứng chính. Nếu bút cảm ứng có nút thứ hai, thì phương thức tương tự sẽ được trả vềBUTTON_STYLUS_SECONDARY
khi người dùng nhấn vào. Nếu người dùng nhấn cả hai nút cùng lúc, phương thức sẽ trả về cả hai giá trị OR cùng nhau (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
). -
Đối với ứng dụng nhắm đến phiên bản nền tảng thấp hơn,
Trả về phương thức
getButtonState()
BUTTON_SECONDARY
(để nhấn nút chính trên bút cảm ứng),BUTTON_TERTIARY
(để nhấn nút phụ trên bút cảm ứng) hoặc cả hai.
Cải thiện tính năng quét Bluetooth năng lượng thấp
Nếu ứng dụng của bạn quét tìm Bluetooth năng lượng thấp, hãy dùng
setCallbackType()
để chỉ định rằng bạn muốn hệ thống thông báo cho các lệnh gọi lại khi tìm thấy hoặc nhìn thấy sau khi
một gói quảng cáo phù hợp với tập hợp ScanFilter
. Chiến dịch này
phương pháp quét tiết kiệm điện hơn so với phương pháp được cung cấp trong phiên bản nền tảng trước đó.
Hỗ trợ Điểm phát sóng 2.0 Bản phát hành 1
Bản phát hành này bổ sung hỗ trợ cho thông số kỹ thuật Điểm phát hành 2.0 Bản phát hành 1 trên thiết bị Nexus 6 và Nexus 9. Người nhận
cung cấp thông tin đăng nhập Điểm phát sóng 2.0 trong ứng dụng của bạn, hãy sử dụng các phương thức mới của
Lớp WifiEnterpriseConfig
, chẳng hạn như
setPlmn()
và
setRealm()
. Trong
WifiConfiguration
, bạn có thể đặt
FQDN
và
providerFriendlyName
trường.
Phương thức isPasspointNetwork()
mới cho biết liệu một
mạng nào đại diện cho một điểm truy cập Điểm phát sóng 2.0.
Chế độ hiển thị 4K
Giờ đây, nền tảng này cho phép các ứng dụng yêu cầu nâng cấp độ phân giải màn hình lên phương thức kết xuất 4K
trên phần cứng tương thích. Để truy vấn độ phân giải vật lý hiện tại, hãy sử dụng
Các API Display.Mode
. Nếu giao diện người dùng được vẽ ở độ phân giải logic thấp hơn và
tăng lên độ phân giải vật lý lớn hơn, hãy lưu ý rằng độ phân giải vật lý
Giá trị trả về của phương thức getPhysicalWidth()
có thể khác với giá trị logic
độ phân giải do getSize()
báo cáo.
Bạn có thể yêu cầu hệ thống thay đổi độ phân giải vật lý trong ứng dụng khi ứng dụng chạy, bằng cách cài đặt
thuộc tính preferredDisplayModeId
của
cửa sổ. Tính năng này rất hữu ích nếu bạn muốn chuyển sang độ phân giải màn hình 4K. Khi ở màn hình 4K
, giao diện người dùng tiếp tục được kết xuất ở độ phân giải ban đầu (chẳng hạn như 1080p) và được nâng cấp lên
4K, nhưng các đối tượng SurfaceView
có thể hiển thị nội dung ở độ phân giải gốc.
ColorStateList có thể tuỳ chỉnh giao diện
Thuộc tính giao diện hiện đã được hỗ trợ trong
ColorStateList
cho thiết bị chạy trên Android 6.0 (API cấp 23). Chiến lược phát hành đĩa đơn
Resources.getColorStateList()
và
Đã có Resources.getColor()
phương thức
không dùng nữa. Nếu bạn đang gọi những API này, hãy gọi
Context.getColorStateList()
hoặc
Context.getColor()
. Các phương thức này
cũng có trong thư viện appcompat v4 thông qua ContextCompat
.
Tính năng âm thanh
Bản phát hành này bổ sung các tính năng nâng cao cho tính năng xử lý âm thanh trên Android, bao gồm:
- Hỗ trợ MIDI
giao thức, với các API
android.media.midi
mới. Sử dụng các API này để gửi và nhận MIDI các sự kiện. AudioRecord.Builder
vàAudioTrack.Builder
mới để tạo đối tượng thu và phát âm thanh kỹ thuật số tương ứng, cũng như định cấu hình âm thanh thuộc tính nguồn và bồn lưu trữ dữ liệu để ghi đè các giá trị mặc định của hệ thống.- Hook API để liên kết thiết bị âm thanh và thiết bị đầu vào. Điều này đặc biệt hữu ích nếu ứng dụng của bạn
cho phép người dùng bắt đầu tìm kiếm bằng giọng nói từ tay điều khiển trò chơi hoặc điều khiển từ xa được kết nối với Android
TV. Hệ thống gọi lệnh mới
onSearchRequested()
gọi lại khi người dùng bắt đầu tìm kiếm. Để xác định xem thiết bị đầu vào của người dùng có tích hợp sẵn micrô, hãy truy xuất đối tượngInputDevice
qua lệnh gọi lại đó, sau đó gọi phương thức phương thứchasMicrophone()
mới. - Phương thức
getDevices()
mới cho phép bạn truy xuất danh sách tất cả thiết bị âm thanh hiện đang kết nối với hệ thống. Bạn cũng có thể đăng kýAudioDeviceCallback
nếu bạn muốn hệ thống thông báo cho ứng dụng của mình khi một thiết bị âm thanh kết nối hoặc ngắt kết nối.
Tính năng video
Bản phát hành này bổ sung các tính năng mới cho các API xử lý video, bao gồm:
- Lớp
MediaSync
mới giúp các ứng dụng kết xuất đồng bộ luồng âm thanh và video. Các vùng đệm âm thanh được gửi theo kiểu không chặn và được trả về thông qua một lệnh gọi lại. Phiên bản này cũng hỗ trợ tốc độ phát động. - Sự kiện
EVENT_SESSION_RECLAIMED
mới, cho biết rằng phiên do ứng dụng mở đã bị trình quản lý tài nguyên thu hồi. Nếu ứng dụng của bạn sử dụng các phiên DRM, bạn nên xử lý sự kiện này và đảm bảo không sử dụng phiên đã lấy lại. - Mã lỗi
ERROR_RECLAIMED
mới, cho biết rằng trình quản lý tài nguyên đã lấy lại tài nguyên đa phương tiện mà bộ mã hoá và giải mã sử dụng. Với ngoại lệ này, phải phát hành bộ mã hoá và giải mã vì bộ mã hoá này đã chuyển sang trạng thái kết thúc. - Giao diện
getMaxSupportedInstances()
mới để nhận gợi ý về số lượng tối đa các giá trị được hỗ trợ bộ mã hoá và giải mã đồng thời. - Phương thức
setPlaybackParams()
mới để đặt tốc độ phát nội dung nghe nhìn nhanh hoặc phát chuyển động chậm. Tính năng này cũng kéo giãn hoặc tăng tốc độ tự động phát âm thanh trong kết hợp với video.
Tính năng của máy ảnh
Bản phát hành này bao gồm các API mới sau đây để truy cập vào đèn pin của máy ảnh và cho xử lý lại hình ảnh bằng máy ảnh:
API Đèn pin
Nếu thiết bị máy ảnh có bộ đèn flash, bạn có thể gọi hàm
setTorchMode()
để bật hoặc tắt chế độ đèn pin của bộ đèn flash mà không cần mở thiết bị máy ảnh. Ứng dụng
không có quyền sở hữu độc quyền đối với bộ đèn flash hoặc thiết bị máy ảnh. Chế độ đèn pin đang bật
tắt và không hoạt động bất cứ khi nào thiết bị máy ảnh không hoạt động hoặc khi máy ảnh khác
các tài nguyên giữ đèn pin ở trạng thái bật sẽ không hoạt động. Các ứng dụng khác cũng có thể gọi
setTorchMode()
để tắt chế độ đèn pin. Khi ứng dụng cuối cùng đã bật chế độ đèn pin đóng, đèn pin
bị tắt.
Bạn có thể đăng ký cuộc gọi lại để được thông báo về trạng thái chế độ đèn pin bằng cách gọi
registerTorchCallback()
. Khi được đăng ký lần đầu tiên, lệnh gọi lại sẽ được gọi ngay lập tức bằng chế độ đèn pin
trạng thái của tất cả thiết bị máy ảnh hiện đã biết có bộ đèn flash. Nếu chế độ đèn pin đang bật hoặc
tắt thành công,
onTorchModeChanged()
mới được gọi.
API tái xử lý
API Camera2
được mở rộng để hỗ trợ YUV và riêng tư
xử lý lại hình ảnh định dạng mờ. Để xác định xem các khả năng xử lý lại này có khả dụng hay không,
hãy gọi getCameraCharacteristics()
và kiểm tra
Khoá REPROCESS_MAX_CAPTURE_STALL
. Nếu một
thiết bị của bạn hỗ trợ quá trình tái xử lý, bạn có thể tạo phiên chụp ảnh máy ảnh có thể tái xử lý bằng cách gọi
createReprocessableCaptureSession()
!
và tạo các yêu cầu để tái xử lý vùng đệm đầu vào.
Dùng lớp ImageWriter
để kết nối luồng vùng đệm đầu vào với máy ảnh
xử lý lại đầu vào. Để có bộ đệm trống, hãy làm theo mô hình lập trình sau:
- Gọi phương thức
dequeueInputImage()
. - Điền dữ liệu vào vùng đệm đầu vào.
- Gửi vùng đệm đến máy ảnh bằng cách gọi hàm
queueInputImage()
.
Nếu bạn đang sử dụng đối tượng ImageWriter
cùng với một
PRIVATE
hình ảnh, ứng dụng của bạn không truy cập được hình ảnh
trực tiếp. Thay vào đó, hãy truyền hình ảnh PRIVATE
trực tiếp đến
ImageWriter
bằng cách gọi hàm
Phương thức queueInputImage()
mà không có bất kỳ bản sao vùng đệm nào.
Lớp ImageReader
hiện hỗ trợ
Luồng hình ảnh ở định dạng PRIVATE
. Sự hỗ trợ này cho phép ứng dụng của bạn
duy trì hàng đợi hình ảnh tròn gồm ImageReader
hình ảnh đầu ra, hãy chọn một hoặc
hình ảnh khác rồi gửi đến ImageWriter
để xử lý lại máy ảnh.
Các tính năng của Android for Work
Bản phát hành này bao gồm các API mới sau đây cho Android for Work:
- Chế độ kiểm soát nâng cao cho các thiết bị dùng một lần, thuộc sở hữu của công ty: Chủ sở hữu thiết bị
Bạn hiện có thể kiểm soát các chế độ cài đặt sau đây để cải thiện khả năng quản lý
Thiết bị thuộc sở hữu của doanh nghiệp, dùng một lần (cosU):
- Tắt hoặc bật lại tính năng bảo vệ bàn phím bằng
setKeyguardDisabled()
. - Tắt hoặc bật lại thanh trạng thái (bao gồm cài đặt nhanh, thông báo và
cử chỉ vuốt lên điều hướng để khởi chạy Google Hiện hành) bằng
setStatusBarDisabled()
. - Tắt hoặc bật lại tính năng khởi động an toàn bằng hằng số
UserManager
DISALLOW_SAFE_BOOT
- Ngăn màn hình tắt trong khi cắm nguồn bằng
Hằng số
STAY_ON_WHILE_PLUGGED_IN
.
- Tắt hoặc bật lại tính năng bảo vệ bàn phím bằng
- Chủ sở hữu thiết bị tự động cài đặt và gỡ cài đặt ứng dụng: Giờ đây, Chủ sở hữu thiết bị có thể
tự động cài đặt và gỡ cài đặt ứng dụng bằng
PackageInstaller
Các API, độc lập với Google Play for Work. Giờ đây, bạn có thể cấp phép cho các thiết bị thông qua Chủ sở hữu thiết bị tìm nạp và cài đặt ứng dụng mà không cần sự tương tác của người dùng. Tính năng này rất hữu ích khi bật chế độ một lần chạm cấp phép kiosk hoặc các thiết bị khác tương tự mà không cần kích hoạt tài khoản Google. - Truy cập im lặng vào chứng chỉ doanh nghiệp: Khi một ứng dụng gọi
choosePrivateKeyAlias()
, trước khi người dùng được nhắc chọn chứng chỉ, Hồ sơ hoặc Chủ sở hữu thiết bị hiện có thể gọionChoosePrivateKeyAlias()
để cung cấp bí danh một cách ngầm ẩn cho ứng dụng yêu cầu. Tính năng này cho phép bạn cấp ứng dụng được quản lý truy cập vào chứng chỉ mà không cần sự tương tác của người dùng. - Tự động chấp nhận các bản cập nhật hệ thống. Thiết lập chính sách cập nhật hệ thống bằng
setSystemUpdatePolicy()
, Giờ đây, Chủ sở hữu thiết bị có thể tự động chấp nhận hệ thống cập nhật, chẳng hạn như trong trường hợp thiết bị kiosk hoặc trì hoãn việc cập nhật và ngăn việc cập nhật mà người dùng xem trong tối đa 30 ngày. Ngoài ra, quản trị viên có thể đặt khoảng thời gian hàng ngày theo phải cập nhật, ví dụ như trong giờ khi không sử dụng thiết bị kiosk. Thời gian có bản cập nhật hệ thống, hệ thống sẽ kiểm tra xem ứng dụng trình kiểm soát chính sách thiết bị có đặt hệ thống hay không cập nhật chính sách và áp dụng cho phù hợp. -
Cài đặt chứng chỉ được uỷ quyền: Giờ đây, Hồ sơ hoặc Chủ sở hữu thiết bị có thể cấp quyền
ứng dụng bên thứ ba có thể gọi những chứng chỉ
DevicePolicyManager
này các API quản lý: - Theo dõi mức sử dụng dữ liệu. Giờ đây, chủ sở hữu thiết bị hoặc hồ sơ có thể truy vấn
số liệu thống kê sử dụng dữ liệu hiển thị trong Cài đặt > bằng cách sử dụng
NetworkStatsManager
. Chủ sở hữu hồ sơ được cấp tự động quyền truy vấn dữ liệu trên hồ sơ mà họ quản lý, trong khi Chủ sở hữu thiết bị có quyền truy cập vào dữ liệu sử dụng của người dùng chính được quản lý. - Quản lý quyền khi bắt đầu chạy:
Chủ sở hữu thiết bị hoặc hồ sơ có thể đặt chính sách về quyền cho tất cả các yêu cầu thời gian chạy của tất cả ứng dụng đang sử dụng
setPermissionPolicy()
để nhắc người dùng cấp quyền hoặc tự động cấp hoặc mà im lặng từ chối cấp quyền. Nếu bạn đặt chính sách thứ hai, thì người dùng không thể sửa đổi lựa chọn của Hồ sơ hoặc Chủ sở hữu thiết bị trong màn hình quyền của ứng dụng trong Cài đặt. - VPN trong Settings (Cài đặt): Các ứng dụng VPN hiện hiển thị trong Cài đặt > Xem thêm > VPN. Ngoài ra, các thông báo đi kèm với hoạt động sử dụng VPN hiện dành riêng cho cách VPN đó đã định cấu hình. Đối với Chủ sở hữu hồ sơ, thông báo liên quan đến việc VPN có được định cấu hình hay không cho một hồ sơ được quản lý, một hồ sơ cá nhân hoặc cả hai. Đối với Chủ sở hữu thiết bị, thông báo cụ thể về việc VPN có được định cấu hình cho toàn bộ thiết bị hay không.
- Thông báo trạng thái công việc: Giờ đây, biểu tượng cặp tài liệu trên thanh trạng thái sẽ xuất hiện bất cứ khi nào một ứng dụng trong hồ sơ được quản lý có một hoạt động ở nền trước. Hơn nữa, nếu thiết bị mở khoá trực tiếp hoạt động của một ứng dụng trong hồ sơ được quản lý, một thông báo ngắn sẽ xuất hiện để thông báo cho người dùng trong hồ sơ công việc.