Android 6.0 (M) ซึ่งนำเสนอฟีเจอร์ใหม่ๆ ให้แก่ผู้ใช้และนักพัฒนาแอป เอกสารนี้จะให้ข้อมูลเบื้องต้นเกี่ยวกับ API ที่มีชื่อเสียงมากที่สุด
เริ่มพัฒนา
ในการเริ่มต้นสร้างแอปสำหรับ Android 6.0 คุณต้องติดตั้ง Android SDK จากนั้นใช้ SDK Manager เพื่อดาวน์โหลดแพลตฟอร์ม Android 6.0 SDK และอิมเมจระบบ
อัปเดตระดับ API เป้าหมาย
เพื่อเพิ่มประสิทธิภาพแอปของคุณสำหรับอุปกรณ์ที่ใช้ Android ให้ดียิ่งขึ้น
ตั้งค่า targetSdkVersion
เป็น
"23"
ติดตั้งแอปของคุณใน Android
อิมเมจระบบ ทดสอบ แล้วเผยแพร่แอปที่อัปเดตแล้วด้วย
การเปลี่ยนแปลงนี้
คุณสามารถใช้ Android API ในขณะที่รองรับเวอร์ชันเก่า
เวอร์ชันต่างๆ ด้วยการเพิ่มเงื่อนไขในโค้ดที่ตรวจสอบระดับ API ของระบบ
ก่อนที่จะเรียกใช้ API ที่ minSdkVersion
ของคุณไม่รองรับ
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการรักษาความเข้ากันได้แบบย้อนหลัง โปรดอ่านการสนับสนุน
แพลตฟอร์มเวอร์ชันต่างๆ
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของระดับ API โปรดอ่าน API คืออะไร ระดับ
การตรวจสอบสิทธิ์ด้วยลายนิ้วมือ
รุ่นนี้มี API ใหม่ที่ช่วยให้คุณตรวจสอบสิทธิ์ผู้ใช้โดยใช้การสแกนลายนิ้วมือของผู้ใช้ใน อุปกรณ์ที่รองรับ, ใช้ API เหล่านี้ร่วมกับ ระบบ Android Keystore
ในการตรวจสอบสิทธิ์ผู้ใช้ผ่านการสแกนลายนิ้วมือ รับอินสแตนซ์
FingerprintManager
ชั้นเรียนและโทรหา
วันที่ authenticate()
แอปของคุณต้องทำงานใน
ที่มีเซ็นเซอร์ลายนิ้วมือ คุณต้องใช้อินเทอร์เฟซผู้ใช้สำหรับลายนิ้วมือ
ขั้นตอนการตรวจสอบสิทธิ์ในแอปและใช้ไอคอนลายนิ้วมือมาตรฐานของ Android ใน UI
ไอคอนลายนิ้วมือของ Android (c_fp_40px.png
) รวมอยู่ใน
ตัวอย่างการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริก
หากคุณพัฒนาแอปหลายแอปที่ใช้การตรวจสอบสิทธิ์ด้วยลายนิ้วมือ โปรดทราบว่าแต่ละแอปจะต้อง
ตรวจสอบลายนิ้วมือของผู้ใช้
แยกกันได้
หากต้องการใช้ฟีเจอร์นี้ในแอป ให้เพิ่ม
USE_FINGERPRINT
ในไฟล์ Manifest
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
หากต้องการดูการใช้งานแอปสำหรับการตรวจสอบสิทธิ์ด้วยลายนิ้วมือ โปรดไปที่ ตัวอย่างการตรวจสอบสิทธิ์ด้วยข้อมูลไบโอเมตริก สำหรับการสาธิตวิธีการใช้การตรวจสอบสิทธิ์เหล่านี้ API ร่วมกับ Android API อื่นๆ โปรดดูวิดีโอ Fingerprint and Payment API
หากคุณกำลังทดสอบฟีเจอร์นี้ ให้ทำตามขั้นตอนต่อไปนี้
- ติดตั้ง Android SDK Tools Revision 24.3 หากยังไม่ได้ติดตั้ง
- ลงทะเบียนลายนิ้วมือใหม่ในโปรแกรมจำลองโดยไปที่ การตั้งค่า > ความปลอดภัย > ลายนิ้วมือ จากนั้นทำตามวิธีการลงทะเบียน
- ใช้โปรแกรมจำลองเพื่อจำลองเหตุการณ์การสัมผัสด้วยลายนิ้วมือ
คำสั่งต่อไปนี้ ใช้คำสั่งเดียวกันเพื่อจำลองเหตุการณ์การสัมผัสด้วยลายนิ้วมือบนหน้าจอล็อก หรือ
ในแอปของคุณ
adb -e emu finger touch <finger_id>
ใน Windows คุณอาจต้องเรียกใช้
telnet 127.0.0.1 <emulator-id>
ตามด้วยfinger touch <finger_id>
ยืนยันข้อมูลเข้าสู่ระบบ
แอปของคุณสามารถตรวจสอบสิทธิ์ผู้ใช้ตามเวลาล่าสุดที่ผู้ใช้ปลดล็อกอุปกรณ์ ช่วงเวลานี้ ช่วยผู้ใช้ไม่ต้องจำรหัสผ่านเฉพาะแอปเพิ่มเติม แถมยังช่วยเลี่ยงความจำเป็น สำหรับการใช้งานอินเทอร์เฟซผู้ใช้ การตรวจสอบสิทธิ์ของคุณเอง แอปของคุณควรใช้ฟีเจอร์นี้ใน ใช้ร่วมกับการใช้งานคีย์สาธารณะหรือคีย์ลับสำหรับการตรวจสอบสิทธิ์ผู้ใช้
วิธีตั้งค่าระยะหมดเวลาที่จะสามารถใช้คีย์เดียวกันซ้ำหลังจากที่ผู้ใช้ใช้งานสำเร็จแล้ว
ตรวจสอบสิทธิ์แล้ว เรียกใช้ฟิลด์
setUserAuthenticationValidityDurationSeconds()
เมื่อคุณตั้งค่า KeyGenerator
หรือ
KeyPairGenerator
หลีกเลี่ยงการแสดงกล่องโต้ตอบการตรวจสอบสิทธิ์ซ้ำมากเกินไป แอปของคุณควรลองใช้
เข้ารหัสออบเจ็กต์ก่อน และหากระยะหมดเวลาหมดอายุ ให้ใช้เมธอด
createConfirmDeviceCredentialIntent()
วิธีตรวจสอบสิทธิ์ผู้ใช้อีกครั้งภายในแอป
การลิงก์แอป
รุ่นนี้ช่วยเพิ่มประสิทธิภาพระบบ Intent ของ Android ด้วยการลิงก์แอปที่มีประสิทธิภาพมากขึ้น ฟีเจอร์นี้ช่วยให้คุณเชื่อมโยงแอปกับโดเมนเว็บที่คุณเป็นเจ้าของได้ อิงตาม โดยตรง แพลตฟอร์มจึงสามารถกำหนดแอปเริ่มต้นที่จะใช้จัดการ เว็บลิงก์และข้ามการแจ้งให้ผู้ใช้เลือกแอป หากต้องการดูวิธีใช้ฟีเจอร์นี้ โปรดดู การจัดการ App Link
การสำรองข้อมูลอัตโนมัติสำหรับแอป
ขณะนี้ระบบดำเนินการสำรองและกู้คืนข้อมูลทั้งหมดโดยอัตโนมัติสำหรับแอป แอปของคุณต้องกําหนดเป้าหมาย Android 6.0 (API ระดับ 23) เพื่อเปิดใช้ลักษณะการทำงานนี้ คุณไม่จำเป็นต้องเพิ่มโค้ดใดๆ อีก หากผู้ใช้ลบบัญชี Google ของตน ระบบจะลบข้อมูลสำรองไปด้วย เพื่อดูวิธี ทำงานและวิธีกำหนดค่าสิ่งที่จะสำรองไว้ในระบบไฟล์ โปรดดู การกำหนดค่าการสำรองข้อมูลอัตโนมัติสำหรับแอป
แชร์โดยตรง
รุ่นนี้มี API ต่างๆ ที่ช่วยให้การแชร์สะดวกและรวดเร็วสำหรับผู้ใช้ ตอนนี้คุณสามารถ กำหนดเป้าหมายการแชร์โดยตรงที่เริ่มกิจกรรมที่เจาะจงในแอป การแชร์โดยตรงเหล่านี้ แสดงต่อผู้ใช้ผ่านเมนูแชร์ ฟีเจอร์นี้ช่วยให้ผู้ใช้แชร์ เนื้อหาไปยังเป้าหมายภายในแอปอื่นๆ เช่น รายชื่อติดต่อ ตัวอย่างเช่น เป้าหมายส่วนแบ่งโดยตรงอาจ เปิดกิจกรรมในแอปเครือข่ายสังคมอื่น ซึ่งช่วยให้ผู้ใช้แชร์เนื้อหาไปยัง เพื่อนหรือชุมชนที่ต้องการในแอปนั้น
ในการเปิดใช้งานเป้าหมายการแชร์โดยตรง คุณต้องกำหนดคลาสที่ขยายฟิลด์
ChooserTargetService
ชั้นเรียน ประกาศ
ในไฟล์ Manifest ภายในการประกาศดังกล่าว ให้ระบุ
สิทธิ์ BIND_CHOOSER_TARGET_SERVICE
และ
ตัวกรอง Intent โดยใช้
การดำเนินการ SERVICE_INTERFACE
ตัวอย่างต่อไปนี้แสดงวิธีประกาศฟิลด์
ChooserTargetService
ในไฟล์ Manifest
<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>
สำหรับแต่ละกิจกรรมที่คุณต้องการแสดง
ChooserTargetService
โปรดเพิ่ม
องค์ประกอบ <meta-data>
ที่มีชื่อ
"android.service.chooser.chooser_target_service"
ในไฟล์ Manifest ของแอป
<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>
การโต้ตอบด้วยเสียง
รุ่นนี้มี API การโต้ตอบด้วยเสียงใหม่ ซึ่งทำงานร่วมกับ
การทำงานด้วยเสียง
ช่วยให้คุณสร้างประสบการณ์เสียงสนทนาในแอปได้ เรียกใช้
isVoiceInteraction()
วิธีในการระบุว่ามีการสั่งงานด้วยเสียงหรือไม่
กิจกรรมของคุณ หากเป็นเช่นนั้น แอปของคุณจะสามารถใช้
VoiceInteractor
ชั้นเรียนเพื่อขอการยืนยันด้วยเสียงจากผู้ใช้ เลือก
จากรายการตัวเลือก และอื่นๆ
การโต้ตอบด้วยเสียงส่วนใหญ่เกิดจากการสั่งงานด้วยเสียงของผู้ใช้ กิจกรรมการโต้ตอบด้วยเสียงสามารถ
แต่ให้เริ่มต้นโดยที่ผู้ใช้ไม่ต้องป้อนข้อมูล ตัวอย่างเช่น อีกแอปหนึ่งเปิดขึ้นผ่านเสียง
การโต้ตอบยังสามารถส่งความตั้งใจที่จะเริ่มการโต้ตอบด้วยเสียงได้อีกด้วย เพื่อดูว่ากิจกรรมของคุณหรือไม่
ที่เปิดใช้งานจากข้อความค้นหาด้วยเสียงของผู้ใช้ หรือจากแอปพลิเคชันการโต้ตอบด้วยเสียงอื่น ให้เรียกใช้
isVoiceInteractionRoot()
วิธี หากแอปอื่นเปิดตัว
กิจกรรม เมธอดจะแสดง false
จากนั้น แอปของคุณอาจแจ้งให้ผู้ใช้ยืนยันว่า
พวกเขาตั้งใจจะสร้างสิ่งนี้ขึ้นมา
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้การสั่งงานด้วยเสียงได้ที่ เว็บไซต์ของนักพัฒนาซอฟต์แวร์ Voice Actions
API การสนับสนุน
รุ่นนี้นำเสนอวิธีใหม่ในการมีส่วนร่วมกับแอปผ่านผู้ช่วย เพื่อใช้งาน ฟีเจอร์นี้ ผู้ใช้ต้องเปิดใช้ผู้ช่วยเพื่อใช้บริบทปัจจุบัน เมื่อเปิดใช้แล้ว ผู้ใช้ สามารถเรียกผู้ช่วยภายในแอปใดก็ได้โดยกดปุ่มหน้าแรกค้างไว้
แอปของคุณสามารถเลือกที่จะไม่แชร์บริบทปัจจุบันกับผู้ช่วยได้โดยการตั้งค่า
แฟล็ก FLAG_SECURE
นอกจาก
ชุดข้อมูลมาตรฐานที่แพลตฟอร์มส่งผ่านไปยังผู้ช่วย โดยแอปของคุณสามารถแชร์
โดยใช้คลาส AssistContent
ใหม่ได้
หากต้องการให้บริบทเพิ่มเติมจากแอปแก่ผู้ช่วย ให้ทำตามขั้นตอนต่อไปนี้
- ใช้อินเทอร์เฟซ
Application.OnProvideAssistDataListener
- ลงทะเบียน Listener นี้โดยใช้
registerOnProvideAssistDataListener()
- ในการให้ข้อมูลบริบทเฉพาะกิจกรรม ให้แทนที่
onProvideAssistData()
Callback และบรรทัดใหม่ วันที่onProvideAssistContent()
Callback
อุปกรณ์เก็บข้อมูลที่นำมาใช้ได้
ในรุ่นนี้ ผู้ใช้จะใช้อุปกรณ์จัดเก็บข้อมูลภายนอก เช่น การ์ด SD ได้ การนำ
อุปกรณ์จัดเก็บข้อมูลภายนอกจะเข้ารหัสและจัดรูปแบบอุปกรณ์ให้ทำงานเหมือนที่จัดเก็บข้อมูลภายใน ช่วงเวลานี้
ช่วยให้ผู้ใช้ย้ายทั้งแอปและข้อมูลส่วนตัวของแอปเหล่านั้นไปมาระหว่างอุปกรณ์จัดเก็บข้อมูลได้ วันและเวลา
ระบบจะทำงานตาม
android:installLocation
ค่ากำหนดในไฟล์ Manifest
หากแอปเข้าถึง API หรือช่องต่อไปนี้ ให้คำนึงถึงเส้นทางไฟล์ที่แอปเหล่านั้นแสดงผล จะเปลี่ยนแปลงแบบไดนามิกเมื่อมีการย้ายแอประหว่างอุปกรณ์จัดเก็บข้อมูลภายในและภายนอก ขณะสร้างเส้นทางไฟล์ ขอแนะนำอย่างยิ่งให้คุณเรียกใช้ API เหล่านี้แบบไดนามิกเสมอ อย่าใช้เส้นทางของไฟล์แบบฮาร์ดโค้ดหรือเก็บเส้นทางไฟล์ที่สมบูรณ์ในตัวเองซึ่งสร้างไว้ก่อนหน้านี้
Context
วิธี:ApplicationInfo
ช่อง:
หากต้องการแก้ไขข้อบกพร่องของฟีเจอร์นี้ ให้เปิดใช้ไดรฟ์ USB ที่ เชื่อมต่อกับอุปกรณ์ Android ผ่านสาย USB On-The-Go (OTG) โดยเรียกใช้คำสั่งนี้
$ adb shell sm set-force-adoptable true
การแจ้งเตือน
รุ่นนี้เพิ่มการเปลี่ยนแปลง API ต่อไปนี้สำหรับการแจ้งเตือน
- ระดับตัวกรอง
INTERRUPTION_FILTER_ALARMS
ใหม่ที่ สอดคล้องกับโหมดห้ามรบกวนเฉพาะปลุกเท่านั้นใหม่ - ค่าหมวดหมู่
CATEGORY_REMINDER
ใหม่ที่ใช้เพื่อ แยกการช่วยเตือนที่ผู้ใช้กำหนดเวลาไว้ออกจากกิจกรรมอื่น (CATEGORY_EVENT
) และการปลุก (CATEGORY_ALARM
) - ชั้นเรียน
Icon
ใหม่ที่คุณสามารถแนบไปกับการแจ้งเตือนได้ ผ่านทาง วันที่setSmallIcon()
และsetLargeIcon()
ในทำนองเดียวกัน ตอนนี้เมธอดaddAction()
ยอมรับออบเจ็กต์Icon
แทน รหัสทรัพยากรที่ถอนออกได้ - เมธอด
getActiveNotifications()
ใหม่ที่ช่วยให้ เพื่อดูว่าการแจ้งเตือนใดบ้างที่ทำงานอยู่ในขณะนั้น
รองรับสไตลัสบลูทูธ
รุ่นนี้มีการสนับสนุนที่ดีขึ้นสำหรับอินพุตของผู้ใช้โดยใช้สไตลัสบลูทูธ ผู้ใช้จับคู่ได้
และเชื่อมต่อสไตลัสบลูทูธที่เข้ากันได้กับโทรศัพท์หรือแท็บเล็ต ขณะเชื่อมต่อ ให้จัดตำแหน่ง
จากหน้าจอสัมผัสจะผสานเข้ากับข้อมูลแรงกดและปุ่มจากสไตลัส
ทำให้คุณสามารถแสดงสีหน้าได้อย่างหลากหลายมากกว่าการใช้หน้าจอสัมผัสเพียงอย่างเดียว แอปของคุณฟังได้
จะกดปุ่มสไตลัสและทำงานรองด้วยการลงทะเบียน
View.OnContextClickListener
และ
GestureDetector.OnContextClickListener
ออบเจ็กต์ในกิจกรรม
ใช้เมธอด MotionEvent
และค่าคงที่เพื่อตรวจหาปุ่มสไตลัส
การโต้ตอบ:
- หากผู้ใช้แตะสไตลัสด้วยปุ่มบนหน้าจอแอป
เมธอด
getTooltype()
ที่แสดงอีกครั้งTOOL_TYPE_STYLUS
- สำหรับแอปที่กำหนดเป้าหมายเป็น Android 6.0 (API ระดับ 23) แอตทริบิวต์
getButtonState()
เมธอดจะแสดงBUTTON_STYLUS_PRIMARY
เมื่อผู้ใช้ กดปุ่มสไตลัสหลัก หากสไตลัสมีปุ่มที่ 2 ก็จะใช้วิธีเดียวกันBUTTON_STYLUS_SECONDARY
เมื่อผู้ใช้กด หากผู้ใช้กด ทั้ง 2 ปุ่มพร้อมกัน เมธอดจะแสดงทั้ง 2 ค่า OR จะแสดงร่วมกัน (BUTTON_STYLUS_PRIMARY
|BUTTON_STYLUS_SECONDARY
) -
สำหรับแอปที่กำหนดเป้าหมายไปที่เวอร์ชันแพลตฟอร์มที่ต่ำกว่า
เมธอด
getButtonState()
ที่แสดงอีกครั้งBUTTON_SECONDARY
(สำหรับการกดปุ่มสไตลัสหลัก)BUTTON_TERTIARY
(สำหรับการกดปุ่มสไตลัสครั้งที่ 2) หรือทั้ง 2 อย่าง
ปรับปรุงการสแกนหาบลูทูธพลังงานต่ำ
ถ้าแอปของคุณสแกนบลูทูธพลังงานต่ำ ให้ใช้
setCallbackType()
เพื่อระบุว่าคุณต้องการให้ระบบแจ้งเตือน Callback เมื่อพบครั้งแรกหรือเห็นหลังจาก
ได้นาน แพ็กเก็ตโฆษณาที่ตรงกับชุด ScanFilter
ช่วงเวลานี้
ในการสแกนจะประหยัดพลังงานมากกว่าที่เคยให้ไว้ในแพลตฟอร์มเวอร์ชันก่อน
การสนับสนุนฮอตสปอต 2.0 รุ่น 1
รุ่นนี้เพิ่มการสนับสนุนสำหรับข้อมูลจำเพาะของฮอตสปอต 2.0 รุ่น 1 บนอุปกรณ์ Nexus 6 และ Nexus 9 ถึง
จัดสรรข้อมูลเข้าสู่ระบบฮอตสปอต 2.0 ในแอปของคุณ โดยใช้วิธีการใหม่ๆ
WifiEnterpriseConfig
ชั้นเรียน เช่น
setPlmn()
และ
setRealm()
ใน
WifiConfiguration
คุณสามารถตั้งค่า
FQDN
และ
providerFriendlyName
ช่อง
เมธอด isPasspointNetwork()
ใหม่จะระบุว่าตรวจพบ
เครือข่าย หมายถึงจุดเข้าใช้งานฮอตสปอต 2.0
โหมดการแสดงผลระดับ 4K
ตอนนี้แพลตฟอร์มจะอนุญาตให้แอปส่งคำขออัปเกรดความละเอียดในการแสดงผลเป็นการแสดงผล 4K ได้แล้ว
บนฮาร์ดแวร์ที่เข้ากันได้ หากต้องการค้นหาความละเอียดทางกายภาพในปัจจุบัน ให้ใช้
Display.Mode
API หากวาด UI ด้วยความละเอียดเชิงตรรกะที่ต่ำกว่าและ
เพิ่มความละเอียดเป็นความละเอียดทางกายภาพที่มากขึ้น โปรดทราบว่าความละเอียดทางกายภาพ
เมธอด getPhysicalWidth()
ที่แสดงอาจแตกต่างจากตรรกะ
ความละเอียดที่รายงานโดย getSize()
คุณขอให้ระบบเปลี่ยนความละเอียดทางกายภาพในแอปขณะที่แอปทำงานได้ โดยตั้งค่า
พร็อพเพอร์ตี้ preferredDisplayModeId
ของแอป
ฟีเจอร์นี้มีประโยชน์หากคุณต้องการเปลี่ยนไปใช้ความละเอียดในการแสดงแบบ 4K ขณะอยู่ในจอแสดงผล 4K
UI จะยังแสดงผลที่ความละเอียดเดิมต่อไป (เช่น 1080p) และจะเพิ่มระดับเป็น
4K แต่ออบเจ็กต์ SurfaceView
รายการอาจแสดงเนื้อหาที่ความละเอียดดั้งเดิม
ColorStateLists ที่กำหนดธีมได้
รองรับแอตทริบิวต์ของธีมแล้วใน
ColorStateList
สำหรับอุปกรณ์ที่ใช้ Android 6.0 (API ระดับ 23)
Resources.getColorStateList()
และ
ได้ Resources.getColor()
วิธีแล้ว
เลิกใช้งานแล้ว ถ้าคุณเรียก API เหล่านี้ ให้เรียกใช้การเรียก
Context.getColorStateList()
หรือ
Context.getColor()
แทน วิธีการเหล่านี้
พร้อมให้ใช้งานในไลบรารี Appcompat เวอร์ชัน 4 ผ่าน ContextCompat
ด้วย
ฟีเจอร์เสียง
รุ่นนี้เพิ่มการเพิ่มประสิทธิภาพการประมวลผลเสียงบน Android ดังต่อไปนี้
- การรองรับ MIDI
ด้วย
android.media.midi
API ใหม่ ใช้ API เหล่านี้เพื่อส่งและรับ MIDI กิจกรรม AudioRecord.Builder
และAudioTrack.Builder
ใหม่ ในการสร้างออบเจ็กต์การบันทึกเสียงและการเล่นแบบดิจิทัลตามลำดับ และกำหนดค่าเสียง พร็อพเพอร์ตี้แหล่งที่มาและซิงก์เพื่อลบล้างค่าเริ่มต้นของระบบ- ฮุก API สำหรับการเชื่อมโยงอุปกรณ์เสียงและอุปกรณ์อินพุต ซึ่งจะเป็นประโยชน์อย่างยิ่งหากแอปของคุณ
อนุญาตให้ผู้ใช้เริ่มค้นหาด้วยเสียงจากเกมคอนโทรลเลอร์หรือรีโมตคอนโทรลที่เชื่อมต่อกับ Android
ทีวี ระบบจะเรียกใช้ฟิลด์
onSearchRequested()
Callback เมื่อผู้ใช้เริ่มการค้นหา เพื่อดูว่าอุปกรณ์อินพุตของผู้ใช้มี ไมโครโฟน ให้เรียกออบเจ็กต์InputDevice
จาก Callback นั้นแล้วเรียก เมธอดhasMicrophone()
ใหม่ - เมธอด
getDevices()
ใหม่ที่ช่วยให้คุณ เรียกดูรายการอุปกรณ์เสียงทั้งหมดที่เชื่อมต่อกับระบบในปัจจุบัน นอกจากนี้คุณยังสามารถลงทะเบียนAudioDeviceCallback
ออบเจ็กต์หากต้องการให้ระบบแจ้งเตือนแอปของคุณ เมื่ออุปกรณ์เสียงเชื่อมต่อหรือยกเลิกการเชื่อมต่อ
ฟีเจอร์วิดีโอ
รุ่นนี้เพิ่มความสามารถใหม่ๆ ให้กับ API การประมวลผลวิดีโอ ซึ่งได้แก่
- คลาส
MediaSync
ใหม่ที่ช่วยให้แอปพลิเคชันแสดงผลแบบพร้อมกัน เสียงและวิดีโอสตรีม บัฟเฟอร์เสียงจะถูกส่งโดยใช้รูปแบบที่ไม่บล็อกและเป็น แสดงผลผ่าน Callback นอกจากนี้ยังรองรับอัตราการเล่นแบบไดนามิกด้วย - เหตุการณ์
EVENT_SESSION_RECLAIMED
ใหม่ ซึ่งระบุว่า ผู้จัดการทรัพยากรอ้างสิทธิ์เซสชันที่เปิดโดยแอปอีกครั้งแล้ว หากแอปใช้เซสชัน DRM คุณควรจัดการกิจกรรมนี้และตรวจสอบว่าไม่ได้ใช้เซสชันที่มีการเรียกคืน - รหัสข้อผิดพลาด
ERROR_RECLAIMED
ใหม่ซึ่งระบุ ที่ผู้จัดการทรัพยากรได้อ้างสิทธิ์ทรัพยากรสื่อที่ตัวแปลงรหัสใช้กลับคืนมา ยกเว้นในกรณีพิเศษนี้ ตัวแปลงรหัสต้องถูกปล่อย เนื่องจากตัวแปลงรหัสได้ย้ายไปเป็นสถานะเทอร์มินัลแล้ว - อินเทอร์เฟซใหม่ของ
getMaxSupportedInstances()
เพื่อรับคำแนะนำเกี่ยวกับจำนวนสูงสุดที่รองรับ อินสแตนซ์ตัวแปลงรหัสพร้อมกัน - วิธีการ
setPlaybackParams()
ใหม่ในการตั้งค่าอัตราการเล่นสื่อสำหรับการเล่นเร็วหรือ การเล่นสโลว์โมชัน นอกจากนี้ยังยืดหรือเร่งการเล่นเสียงโดยอัตโนมัติใน ร่วมกับวิดีโอ
ฟีเจอร์ของกล้อง
รุ่นนี้มี API ใหม่ต่อไปนี้สำหรับการเข้าถึงไฟฉายของกล้องและสำหรับ การประมวลผลภาพใหม่ด้วยกล้อง:
API ไฟฉาย
หากอุปกรณ์กล้องมีหน่วยแฟลช คุณสามารถเรียก
setTorchMode()
เพื่อเปิดหรือปิดโหมดคบเพลิงของหน่วยแฟลชโดยไม่ต้องเปิดอุปกรณ์กล้องถ่ายรูป แอป
ไม่ได้มีสิทธิ์เฉพาะตัวสำหรับหน่วยแฟลชหรืออุปกรณ์กล้อง โหมดไฟฉายเปิดอยู่
ปิดและไม่พร้อมใช้งานเมื่อใดก็ตามที่อุปกรณ์กล้องไม่พร้อมใช้งานหรือเมื่อกล้องอื่นๆ
ทรัพยากรที่ทำให้ไฟฉายใช้งานไม่ได้ แอปอื่นๆ สามารถโทร
setTorchMode()
เพื่อปิดโหมดไฟฉาย เมื่อปิดแอปล่าสุดที่เปิดโหมดคบเพลิง ไฟฉาย
ปิดโหมดแล้ว
คุณสามารถลงทะเบียนการติดต่อกลับเพื่อรับการแจ้งเตือนเกี่ยวกับสถานะโหมดไฟฉายโดยเรียกใช้
registerTorchCallback()
ครั้งแรกที่มีการลงทะเบียน Callback ระบบจะเรียกใช้โหมดไฟฉายทันที
สถานะของอุปกรณ์กล้องทั้งหมดที่รู้จักในปัจจุบันพร้อมด้วยหน่วยแฟลช หากโหมดไฟฉายเปิดอยู่ หรือ
ปิดเรียบร้อยแล้ว
onTorchModeChanged()
มีการเรียกใช้
กำลังประมวลผล API
ขยาย Camera2
API เพื่อรองรับ YUV และแบบส่วนตัว
การประมวลผลรูปภาพรูปแบบทึบแสง หากต้องการดูว่าใช้ความสามารถในการประมวลผลซ้ำเหล่านี้ได้หรือไม่
โทรหา getCameraCharacteristics()
และตรวจสอบ
REPROCESS_MAX_CAPTURE_STALL
หากมี
อุปกรณ์รองรับการประมวลผลใหม่ คุณสามารถสร้างเซสชันการจับภาพด้วยกล้องที่ประมวลผลซ้ำได้โดยการโทร
createReprocessableCaptureSession()
และสร้างคำขอสำหรับการประมวลผลบัฟเฟอร์อินพุตใหม่
ใช้คลาส ImageWriter
เพื่อเชื่อมต่อโฟลว์บัฟเฟอร์ของอินพุตกับกล้อง
กำลังประมวลผลอินพุตใหม่ หากต้องการบัฟเฟอร์ว่าง ให้ทำตามโมเดลการเขียนโปรแกรมนี้
- เรียกใช้เมธอด
dequeueInputImage()
- กรอกข้อมูลลงในบัฟเฟอร์อินพุต
- ส่งบัฟเฟอร์ไปที่กล้องโดยเรียก
queueInputImage()
วิธี
หากคุณใช้ออบเจ็กต์ ImageWriter
ร่วมกับ
รูปภาพ PRIVATE
แอปของคุณไม่สามารถเข้าถึงรูปภาพ
ข้อมูลโดยตรง แต่ให้ส่งรูปภาพ PRIVATE
ไปยัง
ImageWriter
โดยการเรียกใช้
queueInputImage()
วิธี
โดยไม่ต้องคัดลอกบัฟเฟอร์ใดๆ
ชั้นเรียน ImageReader
รองรับแล้ว
สตรีมรูปภาพในรูปแบบ PRIVATE
การสนับสนุนนี้ช่วยให้แอปของคุณ
รักษาคิวภาพวงกลมของภาพเอาต์พุต ImageReader
ภาพ โปรดเลือก 1 รายการหรือ
รูปภาพเพิ่มเติม แล้วส่งไปยัง ImageWriter
เพื่อประมวลผลกล้องอีกครั้ง
ฟีเจอร์ของ Android for Work
รุ่นนี้มี API ใหม่ต่อไปนี้สำหรับ Android for Work
- การควบคุมที่เพิ่มประสิทธิภาพสำหรับอุปกรณ์แบบใช้งานครั้งเดียวที่องค์กรเป็นเจ้าของ: เจ้าของอุปกรณ์
สามารถควบคุมการตั้งค่าต่อไปนี้เพื่อปรับปรุงการจัดการ
อุปกรณ์แบบใช้งานครั้งเดียว (COSU) ที่เป็นของบริษัท
- ปิดใช้หรือเปิดใช้การล็อกปุ่มอีกครั้งโดยใช้
setKeyguardDisabled()
วิธี - ปิดหรือเปิดใช้งานแถบสถานะอีกครั้ง (รวมถึงการตั้งค่าด่วน การแจ้งเตือน และ
ท่าทางสัมผัสการปัดขึ้นเพื่อนำทางซึ่งจะเปิด Google Now) ด้วย
setStatusBarDisabled()
- ปิดใช้หรือเปิดใช้การเปิดเครื่องที่ปลอดภัยอีกครั้งด้วยค่าคงที่
UserManager
DISALLOW_SAFE_BOOT
- ป้องกันไม่ให้หน้าจอปิดเมื่อเสียบปลั๊ก
ค่าคงที่
STAY_ON_WHILE_PLUGGED_IN
- ปิดใช้หรือเปิดใช้การล็อกปุ่มอีกครั้งโดยใช้
- การติดตั้งและถอนการติดตั้งแอปโดยไม่ส่งเสียงโดยเจ้าของอุปกรณ์: เจ้าของอุปกรณ์สามารถทำสิ่งต่อไปนี้ได้แล้ว
ติดตั้งและถอนการติดตั้งแอปพลิเคชันแบบเงียบๆ โดยใช้
PackageInstaller
API ที่เป็นอิสระจาก Google Play for Work ตอนนี้คุณสามารถจัดสรรอุปกรณ์ผ่านเจ้าของอุปกรณ์ที่ ดึงข้อมูลและติดตั้งแอปโดยไม่ต้องโต้ตอบกับผู้ใช้ ฟีเจอร์นี้มีประโยชน์สำหรับการเปิดใช้ด้วยการแตะเพียงครั้งเดียว การจัดสรรคีออสก์หรืออุปกรณ์อื่นๆ โดยไม่ต้องเปิดใช้งานบัญชี Google - การเข้าถึงใบรับรองขององค์กรที่ไม่มีเสียง: เมื่อมีการเรียกแอป
choosePrivateKeyAlias()
, ก่อนที่ผู้ใช้จะได้รับข้อความแจ้งให้เลือกใบรับรอง โปรไฟล์หรือเจ้าของอุปกรณ์สามารถโทรหาได้แล้วในตอนนี้onChoosePrivateKeyAlias()
เพื่อระบุชื่อแทนให้กับแอปพลิเคชันที่ขอโดยไม่มีการแจ้งเตือน ฟีเจอร์นี้ช่วยให้คุณให้สิทธิ์ แอปที่มีการจัดการมีสิทธิ์เข้าถึงใบรับรองโดยไม่ต้องมีการโต้ตอบของผู้ใช้ - การยอมรับการอัปเดตระบบโดยอัตโนมัติ ตั้งค่านโยบายการอัปเดตระบบด้วย
setSystemUpdatePolicy()
, เจ้าของอุปกรณ์สามารถยอมรับระบบโดยอัตโนมัติแล้ว เช่น ในกรณีของอุปกรณ์คีออสก์ หรือเลื่อนการอัปเดตออกไป และป้องกันไม่ให้เกิด ของผู้ใช้เป็นเวลาถึง 30 วัน นอกจากนี้ ผู้ดูแลระบบยังสามารถกำหนดกรอบเวลารายวัน การอัปเดตที่ต้องดำเนินการ เช่น ในช่วงเวลาที่ไม่มีการใช้งานอุปกรณ์คีออสก์ วันและเวลา มีการอัปเดตระบบพร้อมใช้งาน ระบบจะตรวจสอบว่าแอปเครื่องมือควบคุมนโยบายด้านอุปกรณ์ได้ตั้งค่าระบบไว้หรือไม่ อัปเดตนโยบายและจะทำงานตามนั้น -
การติดตั้งใบรับรองที่ได้รับมอบสิทธิ์: ตอนนี้โปรไฟล์หรือเจ้าของอุปกรณ์สามารถให้สิทธิ์
แอปของบุคคลที่สามสามารถเรียกใช้ใบรับรอง
DevicePolicyManager
เหล่านี้ API การจัดการ: - การติดตามปริมาณการใช้อินเทอร์เน็ต ขณะนี้โปรไฟล์หรือเจ้าของอุปกรณ์สามารถค้นหา
สถิติการใช้งานข้อมูลที่แสดงในการตั้งค่า > การใช้ข้อมูลโดยใช้
NetworkStatsManager
วิธี เจ้าของโปรไฟล์จะได้รับสิทธิ์โดยอัตโนมัติ มีสิทธิ์ค้นหาข้อมูลในโปรไฟล์ที่ตนจัดการ ขณะที่เจ้าของอุปกรณ์มีสิทธิ์เข้าถึงข้อมูลการใช้งาน ของผู้ใช้หลักที่มีการจัดการ - การจัดการสิทธิ์รันไทม์:
โปรไฟล์หรือเจ้าของอุปกรณ์สามารถตั้งค่านโยบายสิทธิ์ได้ สำหรับคำขอรันไทม์ทั้งหมดของแอปพลิเคชันทั้งหมดที่ใช้
setPermissionPolicy()
เพื่อแจ้งให้ผู้ใช้อนุญาตหรือให้สิทธิ์โดยอัตโนมัติ ปฏิเสธสิทธิ์โดยไม่มีการแจ้งเตือน หากตั้งค่านโยบายหลังไว้ ผู้ใช้จะไม่สามารถ แก้ไขการเลือกโดยโปรไฟล์หรือเจ้าของอุปกรณ์ในหน้าจอสิทธิ์ของแอปใน การตั้งค่า - VPN ในการตั้งค่า: ตอนนี้คุณสามารถดูแอป VPN ได้ใน การตั้งค่า > เพิ่มเติม > VPN นอกจากนี้ การแจ้งเตือนที่มาพร้อมกับการใช้ VPN จะระบุอย่างเจาะจงว่า VPN นั้น กำหนดค่าแล้ว สำหรับเจ้าของโปรไฟล์ การแจ้งเตือนจะเจาะจงว่า VPN ได้รับการกำหนดค่าไว้หรือไม่ สำหรับโปรไฟล์ที่มีการจัดการ โปรไฟล์ส่วนตัว หรือทั้ง 2 อย่าง สำหรับเจ้าของอุปกรณ์ การแจ้งเตือนจะเป็น ว่ามีการกำหนดค่า VPN สำหรับอุปกรณ์ทั้งเครื่องหรือไม่
- การแจ้งเตือนสถานะงาน: ไอคอนกระเป๋าเอกสารบนแถบสถานะจะปรากฏขึ้นเมื่อใดก็ตาม แอปจากโปรไฟล์ที่มีการจัดการมีกิจกรรมอยู่เบื้องหน้า นอกจากนี้ ถ้าอุปกรณ์ ปลดล็อกโดยตรงไปยังกิจกรรมของแอปในโปรไฟล์ที่มีการจัดการ ข้อความโทสต์จะปรากฏขึ้นเพื่อแจ้งเตือน ผู้ใช้ที่อยู่ภายในโปรไฟล์งาน