API Android 6.0

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" />
Thiết bị di động cho thấy chức năng xác thực bằng vân tay

Để 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:

  1. 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).
  2. Đă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ý.
  3. 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

Phần dưới cùng của thiết bị di động đang hiển thị chức nă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:

  1. Triển khai giao diện Application.OnProvideAssistDataListener.
  2. Đăng ký trình nghe này bằng cách sử dụng registerOnProvideAssistDataListener().
  3. Để 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ới onProvideAssistContent() .

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.

Để 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 qua setSmallIcon()setLargeIcon() . Tương tự, Phương thức addAction() hiện chấp nhận đối tượng Icon 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()setRealm(). Trong WifiConfiguration, bạn có thể đặt FQDNproviderFriendlyName 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.BuilderAudioTrack.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ượng InputDevice qua lệnh gọi lại đó, sau đó gọi phương thức phương thức hasMicrophone() 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:

  1. Gọi phương thức dequeueInputImage().
  2. Điền dữ liệu vào vùng đệm đầu vào.
  3. 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.
  • 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ọi onChoosePrivateKeyAlias() để 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ý:
  • Thiết bị di động hiển thị tính năng thông báo trạng thái công việc trong Android for Work
  • 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.