keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png
การขอสิทธิ์ใน Wear OS คล้ายกับการขอสิทธิ์ในแอปบนอุปกรณ์เคลื่อนที่ โดยมี Use Case เพิ่มเติมอีก 2 รายการ เอกสารนี้ถือว่าคุณเข้าใจวิธีการทำงานของสิทธิ์ Android หากไม่ทราบ ให้ดูวิธีการทำงานของสิทธิ์ใน Android
ผู้ใช้ต้องให้สิทธิ์แก่แอป Wear เพื่อเข้าถึงฟังก์ชันบางอย่าง เช่นเดียวกับในแอปบนอุปกรณ์เคลื่อนที่ ในแอป Wear ให้มอบฟังก์ชันการทำงานที่มีความหมายโดยไม่ต้องขอสิทธิ์ใดๆ
สถานการณ์สิทธิ์
มีหลายกรณีที่คุณอาจพบเมื่อขอสิทธิ์ที่เป็นอันตรายใน Wear OS
แอป Wear ขอสิทธิ์สําหรับแอปที่ทํางานในอุปกรณ์ที่สวมใส่ได้
แอป Wear ขอสิทธิ์สำหรับแอปที่ทำงานอยู่ในโทรศัพท์
แอปโทรศัพท์ขอสิทธิ์สำหรับแอปที่ทำงานอยู่ในอุปกรณ์ที่สวมใส่ได้
แอปโทรศัพท์ขอสิทธิ์หลายรายการที่ใช้ได้ขณะที่อุปกรณ์ที่สวมใส่ได้เชื่อมต่ออยู่เท่านั้น
หากต้องการดูสถานการณ์เหล่านี้ทั้งหมดในแอปที่ใช้งานได้ ให้ดูตัวอย่าง ExerciseSampleCompose ใน GitHub
ส่วนต่อไปนี้จะอธิบายสถานการณ์เหล่านี้แต่ละรายการ ดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการขอสิทธิ์ได้ที่ส่วนรูปแบบคำขอสิทธิ์
แอป Wear ขอสิทธิ์เข้าถึงอุปกรณ์ที่สวมใส่ได้
เมื่อแอป Wear ขอสิทธิ์สําหรับแอปที่ทํางานบนอุปกรณ์ที่สวมใส่ได้ ระบบจะแสดงกล่องโต้ตอบเพื่อแจ้งให้ผู้ใช้ให้สิทธิ์ดังกล่าว ในแอปของคุณ ให้ขอสิทธิ์เฉพาะในกรณีที่ผู้ใช้เข้าใจเหตุผลที่ต้องใช้สิทธิ์ดังกล่าวเพื่อดำเนินการหนึ่งๆ
โปรดอ่านหลักการด้านสิทธิ์เพื่อให้แน่ใจว่าคุณมอบประสบการณ์การใช้งานที่ดีที่สุดให้แก่ผู้ใช้ และอย่าลืมตรวจสอบ shouldShowRequestPermissionRationale()
และระบุข้อมูลเพิ่มเติมตามที่จำเป็น
หากแอปหรือหน้าปัดต้องการสิทธิ์มากกว่า 1 รายการพร้อมกัน คำขอสิทธิ์จะปรากฏทีละรายการ
แอป Wear ขอสิทธิ์เข้าถึงโทรศัพท์
เมื่อแอป Wear ขอสิทธิ์จากโทรศัพท์ เช่น แอปอุปกรณ์ที่สวมใส่ได้ต้องการเข้าถึงรูปภาพหรือข้อมูลที่ละเอียดอ่อนอื่นๆ ในแอปเวอร์ชันอุปกรณ์เคลื่อนที่ แอป Wear จะต้องส่งผู้ใช้ไปยังโทรศัพท์เพื่อยอมรับสิทธิ์ จากนั้นแอปในโทรศัพท์สามารถให้ข้อมูลเพิ่มเติมแก่ผู้ใช้ได้โดยใช้กิจกรรม ในกิจกรรม ให้ใส่ปุ่ม 2 ปุ่ม ได้แก่ ปุ่มให้สิทธิ์และปุ่มปฏิเสธ
แอปโทรศัพท์ขอสิทธิ์เข้าถึงอุปกรณ์ที่สวมใส่ได้
หากผู้ใช้อยู่ในแอปโทรศัพท์และแอปดังกล่าวต้องใช้สิทธิ์อุปกรณ์ที่สวมใส่ได้ เช่น เพื่อโหลดเพลงล่วงหน้าในกรณีที่โทรศัพท์ตัดการเชื่อมต่อ แอปโทรศัพท์จะส่งผู้ใช้ไปยังอุปกรณ์ที่สวมใส่ได้เพื่อยอมรับสิทธิ์ แอปเวอร์ชันอุปกรณ์ที่สวมใส่ได้จะใช้เมธอด requestPermissions()
เพื่อเรียกให้แสดงกล่องโต้ตอบสิทธิ์ของระบบ
แอปโทรศัพท์ขอสิทธิ์หลายรายการพร้อมกัน
แอปของพาร์ทเนอร์ใน Android 12 (API ระดับ 31) ขึ้นไปสามารถใช้โปรไฟล์อุปกรณ์ที่ใช้ร่วมกันเมื่อเชื่อมต่อกับนาฬิกา การใช้โปรไฟล์จะทําให้กระบวนการลงทะเบียนง่ายขึ้นด้วยการรวมการให้ชุดสิทธิ์เฉพาะประเภทอุปกรณ์ไว้ในขั้นตอนเดียว
ระบบจะมอบสิทธิ์แบบแพ็กเกจให้กับแอปที่ใช้ร่วมกันเมื่ออุปกรณ์เชื่อมต่อ และจะมีผลเฉพาะในขณะที่อุปกรณ์เชื่อมโยงอยู่เท่านั้น การลบแอปหรือนําการเชื่อมโยงออกจะเป็นการนําสิทธิ์ออกด้วย ดูรายละเอียดได้ที่
AssociationRequest.Builder.setDeviceProfile()
รูปแบบคำขอสิทธิ์
การขอสิทธิ์จากผู้ใช้มีหลายรูปแบบ โดยเรียงตามลําดับความสําคัญ ดังนี้
ขอสิทธิ์ในบริบทเมื่อเห็นได้ชัดว่าสิทธิ์นั้นจําเป็นสําหรับฟังก์ชันการทํางานบางอย่าง แต่ไม่จําเป็นสําหรับการทํางานของแอปโดยรวม
ให้ความรู้ตามบริบทเมื่อเหตุผลในการขอสิทธิ์ไม่ชัดเจนและสิทธิ์นั้นไม่จำเป็นต่อการทำงานของแอปโดยรวม
รูปแบบเหล่านี้มีคำอธิบายในส่วนต่อไปนี้
ถามในบริบท
ขอสิทธิ์เมื่อผู้ใช้เข้าใจเหตุผลที่จำเป็นต้องขอสิทธิ์เพื่อดำเนินการหนึ่งๆ ผู้ใช้มีแนวโน้มที่จะให้สิทธิ์มากขึ้นเมื่อเข้าใจความเชื่อมโยงของสิทธิ์นั้นกับฟีเจอร์ที่ต้องการใช้
เช่น แอปอาจต้องใช้ตำแหน่งของผู้ใช้เพื่อแสดงสถานที่ที่น่าสนใจซึ่งอยู่ใกล้เคียง เมื่อผู้ใช้แตะเพื่อค้นหาสถานที่ใกล้เคียง แอปจะขอสิทธิ์เข้าถึงตำแหน่งได้ทันที เนื่องจากมีความสัมพันธ์ที่ชัดเจนระหว่างการค้นหาสถานที่ใกล้เคียงกับความต้องการสิทธิ์เข้าถึงตำแหน่ง ความสัมพันธ์ที่ชัดเจนนี้ทำให้แอปไม่จำเป็นต้องแสดงหน้าจอให้ความรู้เพิ่มเติม
ให้ความรู้ในบริบท
รูปที่ 6 แสดงตัวอย่างการให้ความรู้ในบริบท แอปไม่จําเป็นต้องขอสิทธิ์เพื่อเริ่มตัวจับเวลา แต่คําแนะนําด้านการศึกษาในบทสนทนาจะแสดงว่ากิจกรรมส่วนหนึ่งซึ่งก็คือการตรวจหาตําแหน่งถูกล็อกอยู่ เมื่อผู้ใช้แตะคำบอกใบ้ หน้าจอขอสิทธิ์จะปรากฏขึ้นเพื่อให้ผู้ใช้ปลดล็อกการตรวจหาตำแหน่ง
ใช้วิธี shouldShowRequestPermissionRationale()
เพื่อช่วยแอปตัดสินใจว่าจะให้ข้อมูลเพิ่มเติมหรือไม่ ดูรายละเอียดเพิ่มเติมที่หัวข้อขอสิทธิ์เข้าถึงแอป หรือจะดูวิธีที่แอปพลิเคชันตัวอย่างของลำโพงใน GitHub จัดการการแสดงข้อมูลก็ได้
จัดการการปฏิเสธ
หากผู้ใช้ปฏิเสธสิทธิ์ที่ขอซึ่งไม่สำคัญต่อกิจกรรมที่ต้องการ อย่าบล็อกไม่ให้ผู้ใช้ดำเนินการต่อ หากสิทธิ์ที่ถูกปฏิเสธทำให้กิจกรรมบางอย่างปิดอยู่ ให้แสดงความคิดเห็นที่มองเห็นได้และนำไปใช้ได้
รูปที่ 7 แสดงการใช้ไอคอนแม่กุญแจเพื่อระบุว่าฟีเจอร์ถูกล็อกเนื่องจากผู้ใช้ไม่ได้ให้สิทธิ์ในการใช้งาน
เมื่อกล่องโต้ตอบสิทธิ์สำหรับอุปกรณ์ที่สวมใส่ได้ซึ่งถูกปฏิเสธก่อนหน้านี้ปรากฏขึ้นเป็นครั้งที่ 2 กล่องโต้ตอบดังกล่าวจะมีตัวเลือกปฏิเสธ ไม่แสดงอีก หากผู้ใช้เลือกตัวเลือกนี้ วิธีเดียวที่ผู้ใช้จะให้สิทธิ์นี้ในอนาคตได้คือไปที่แอปการตั้งค่าของอุปกรณ์ที่สวมใส่ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีจัดการกับการปฏิเสธสิทธิ์
สิทธิ์สำหรับบริการ
เฉพาะกิจกรรมเท่านั้นที่เรียกใช้เมธอดrequestPermissions()
ได้ ดังนั้นหากผู้ใช้โต้ตอบกับแอปโดยใช้บริการ เช่น ผ่านหน้าปัด บริการจะต้องเปิดกิจกรรมก่อนขอสิทธิ์ ในกิจกรรมนี้ ให้ให้ความรู้เพิ่มเติมเกี่ยวกับเหตุผลที่ต้องมีสิทธิ์
โดยทั่วไปแล้ว อย่าขอสิทธิ์สำหรับหน้าปัด แต่ให้ใช้ข้อมูลแทรกแทน แล้วให้ผู้ใช้เลือกข้อมูลที่จะแสดงผ่านข้อมูลแทรก
การตั้งค่า
ผู้ใช้เปลี่ยนสิทธิ์ของแอป Wear ได้ในการตั้งค่าได้ทุกเมื่อ เมื่อผู้ใช้พยายามทำสิ่งที่ต้องใช้สิทธิ์ ให้เรียกใช้เมธอด checkSelfPermission()
ก่อนเพื่อดูว่าแอปมีสิทธิ์ดำเนินการหรือไม่
โปรดทำการตรวจสอบนี้แม้ว่าผู้ใช้จะเคยให้สิทธิ์แล้วก็ตาม เนื่องจากผู้ใช้อาจเพิกถอนสิทธิ์ในภายหลัง
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- ขอสิทธิ์รันไทม์
- สิทธิ์บลูทูธ
- สื่อสารในเบื้องหลัง