LiveCard
ชั้นเรียนนี้ช่วยให้คุณสร้างการ์ดที่ใช้งานอยู่และเผยแพร่ในไทม์ไลน์ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการ์ดแบบสดได้ที่ คู่มือนักพัฒนาซอฟต์แวร์การ์ดแบบสด
อายุการใช้งานของการ์ดแบบสด
การ์ดที่เผยแพร่อยู่จำเป็นต้องมีบริบทที่ยาวนานในการเป็นเจ้าของการ์ดตลอดระยะเวลาที่เป็น
เผยแพร่แล้ว คุณจึงควรจัดการรูปภาพเหล่านี้ในเบื้องหลัง Service
จากนั้นคุณจะสามารถ
เผยแพร่บัตรแบบสดทันทีที่บริการเริ่มทำงาน หรือเพื่อตอบสนองต่อเหตุการณ์อื่นๆ ที่
จอภาพบริการ ในทำนองเดียวกัน คุณควรเลิกเผยแพร่การ์ดเมื่อการ์ดดังกล่าวไม่เกี่ยวข้องอีกต่อไปแล้วหรือเมื่อ
บริการจะถูกทำลาย
เมื่อเผยแพร่การ์ดที่เผยแพร่อยู่ คุณจะเลือกได้ว่าการ์ดจะส่งผลกระทบต่อผู้ใช้อย่างไร เมื่อเผยแพร่แบบเงียบ ระบบจะแทรกการ์ดลงในไทม์ไลน์โดยไม่มีเอฟเฟกต์ที่มองเห็นได้ ซึ่งผู้ใช้ต้องปัดเพื่อ เพื่อดูการ์ด นอกจากนี้ คุณยังสามารถแสดงการ์ดสดโดยอัตโนมัติได้ทันทีหลังการแสดง และเผยแพร่แล้ว วิธีนี้มักจะมีประโยชน์เมื่ออินเทอร์เฟซผู้ใช้หลักของแอปพลิเคชันคือการ์ดแบบสด และไม่ใช่กิจกรรมใดๆ
การแสดงเนื้อหาในการ์ดแบบสด
การ์ดแบบสดสามารถแสดงเนื้อหาจากทรัพยากรที่มีเลย์เอาต์หรือโดยการอนุญาตให้แสดงผลโค้ด ลงบนพื้นผิวภาพวาดโดยตรง เลือกวิธีที่เหมาะกับแอปพลิเคชันของคุณมากที่สุด เกี่ยวกับความถี่ที่คุณต้องอัปเดตเนื้อหาบนการ์ดและ การแสดงผลเป็นหลัก วิดเจ็ต หรือกราฟิก รูปแบบอิสระ
การขยายเลย์เอาต์โดยใช้มุมมองระยะไกล
หากแอปพลิเคชันของคุณต้องการเฉพาะวิดเจ็ตมาตรฐานและการอัปเดตนานๆ ครั้ง (ประมาณ 2-3 วินาที หรือ
ระหว่างการรีเฟรชแต่ละครั้ง) จากนั้นจึงสร้างการ์ดโดยรับความช่วยเหลือจากชั้นเรียน RemoteViews
ออบเจ็กต์ RemoteViews
ทำให้ไทม์ไลน์ของ Glass ซึ่งทำงานเป็นกระบวนการที่แยกจาก
โค้ดของแอปพลิเคชันของคุณเอง ทำให้เค้าโครงที่คุณสร้างขึ้นสูงเกินจริง
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
โปรดทราบว่าเมื่อเผยแพร่การ์ดที่ใช้ RemoteViews
แล้ว จะมีการเปลี่ยนแปลงจำนวนการดูดังนี้
การเรียก set*
วิธีจะไม่ปรากฏในไทม์ไลน์ เว้นแต่คุณจะโทรอย่างชัดแจ้ง
setViews
ในการ์ดสดอีกครั้งเพื่อบังคับให้อัปเดต
การวาดภาพบนพื้นผิวการ์ดแบบสดโดยตรง
หากแอปพลิเคชันของคุณต้องได้รับการอัปเดตบ่อยขึ้น (หลายครั้งต่อวินาที) หรือแสดงผลมากขึ้น
กราฟิกที่ละเอียดกว่าการรองรับวิดเจ็ตมาตรฐาน ทำให้สามารถแสดงผลได้โดยตรงและสามารถเพิ่ม
SurfaceHolder.Callback
ไปยังแพลตฟอร์มของบัตร
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
จากนั้น คุณสามารถวาดบนพื้นผิวภายในเทรดพื้นหลังโดยตรงหรือวาดบนพื้นผิวภายนอก
เหตุการณ์ (เช่น การอัปเดตเซ็นเซอร์หรือตำแหน่ง) ใช้ surfaceCreated
และ
surfaceDestroyed
เมธอดในการเริ่มและหยุดตรรกะการแสดงผลเมื่อการ์ด
ซ่อนหรือซ่อนไว้
โปรดทราบว่าเมธอด Callback ของตัวยึดตำแหน่งจะไม่มีการเรียกใช้ในเทรด UI หลัก
การจัดการการเลือกบัตรแบบเรียลไทม์
การ์ดแบบสดต้องมีการดำเนินการ (PendingIntent
เพื่อเริ่มกิจกรรม
บริการ หรือทำการเผยแพร่) ที่จะถูกดำเนินการเมื่อผู้ใช้แตะเพื่อเลือกการ์ด
โดยปกติคุณจะใช้การทำงานนี้เพื่อเริ่มกิจกรรมที่แสดงเมนูตัวเลือกหรือดำเนินการ
ผู้ใช้ในส่วนอื่นของแอปพลิเคชัน อย่างน้อยที่สุด คุณควรระบุตัวเลือก
ซึ่งช่วยให้ผู้ใช้นำการ์ดที่เผยแพร่อยู่ออกจากไทม์ไลน์ได้
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
ระบบจะไม่แสดงการ์ดแบบสดที่ไม่มีการดำเนินการ
ชั้นเรียนที่ซ้อนกัน | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | กำหนดวิธีการแสดงการ์ดแก่ผู้ใช้เมื่อเผยแพร่ |
ค่าคงที่ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | บูลีนเอ็กซ์ตราที่แสดง Intent มีการเปิดใช้งานด้วยเสียงจากการ์ดแบบสด |
ผู้รับเหมาก่อสร้าง | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
วิธีการสาธารณะ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
เป็นโมฆะ |
navigate()
|
||||||||||
เป็นโมฆะ |
เผยแพร่(โหมด LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(Intent PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(เปิดใช้บูลีน)
|
||||||||||
LiveCard |
setRenderer(ตัวแสดงผล GlRenderer)
|
||||||||||
LiveCard |
setViews(มุมมอง RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(เปิดใช้บูลีน)
|
||||||||||
เป็นโมฆะ |
เมธอดที่รับมา | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ค่าคงที่
ผู้รับเหมาก่อสร้าง
วิธีการสาธารณะ
สาธารณะ LiveCard แนบ (บริการ)
แนบ Service
ในเบื้องหลังเพื่อให้เมื่อการ์ดนี้ได้รับ
เผยแพร่แล้ว ระบบจะตั้งค่าบริการที่ระบุให้ทำงานในเบื้องหน้า
ระบบจะนำบริการออกจากเบื้องหน้าโดยอัตโนมัติ เลิกเผยแพร่การ์ดที่เผยแพร่อยู่แล้ว
พารามิเตอร์
บริการ | จะทํางานใน foregound |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
สาธารณะ SurfaceHolder getSurfaceHolder ()
เมื่อเปิดใช้การแสดงผลโดยตรง ให้สิทธิ์เข้าถึง Surface
ที่จะวาด
โปรดทราบว่า SurfaceHolder
ที่ส่งคืนควรนำไปใช้เป็นวิธีเข้าถึง
แพลตฟอร์มที่มีการจัดการ วิธีการปรับเปลี่ยนรูปร่างและประเภทของพื้นผิวนั้นไม่มีการดำเนินการ
โปรดทราบว่า Callback สำหรับออบเจ็กต์นี้ไม่ได้เกิดขึ้นในเธรด UI
ดูเพิ่มเติม
สาธารณะ บูลีน isPublished ()
แสดงผล true
หากเผยแพร่การ์ดอยู่ในขณะนี้
สาธารณะ เป็นโมฆะ ไปยังที่ต่างๆ ()
ส่งผู้ใช้ไปยังการ์ดนี้ในไทม์ไลน์
การขว้าง
IllegalStateException | หากการ์ดไม่ได้รับการเผยแพร่ |
---|
สาธารณะ เป็นโมฆะ เผยแพร่ (โหมด LiveCard.PublishMode)
เผยแพร่การ์ดนี้ในไทม์ไลน์
การ์ดจะแสดงเมื่อมีการดำเนินการ และเปิดใช้การแสดงผลโดยตรง หรือ ตั้งค่ามุมมองระยะไกลแล้ว
พารามิเตอร์
โหมด | กำหนดวิธีการแสดงการ์ดแก่ผู้ใช้ |
---|
สาธารณะ LiveCard setAction (PendingIntent Intent)
เปลี่ยนการดำเนินการเมื่อเลือกการ์ด
พารามิเตอร์
Intent | จะเริ่มทำงานเมื่อเลือกการ์ด |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
สาธารณะ LiveCard setDirectRenderingEnabled (เปิดใช้บูลีน)
เปิดใช้งานการแสดงผลโดยตรง
ในโหมดนี้ เนื้อหาการ์ดจะต้องแสดงผลใน Surface
โดยตรง
โปรดทราบว่าจะเรียกใช้วิธีการนี้ได้ต่อเมื่อบัตรไม่ได้เผยแพร่อยู่เท่านั้น และจะไม่มีการเผยแพร่ ส่งข้อยกเว้น
พารามิเตอร์
เปิดใช้ | ควรเปิดใช้การแสดงผลโดยตรงหรือไม่ |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
ดูเพิ่มเติม
สาธารณะ LiveCard setRenderer (GlRenderer)
เพิ่มตัวแสดงผลที่ใช้ OpenGL
โหมดแสดงภาพจะถูกใช้ในการวาดบนพื้นผิวที่ขอ (โดยอัตโนมัติ) สำหรับพื้นผิวโดยตรง ในการแสดงภาพ
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
สาธารณะ LiveCard setViews (RemoteViews การดู)
เปลี่ยน RemoteViews
ที่ใช้เพื่อแสดง UI ของการ์ดนี้
ควรเรียกเมธอดนี้หลังจากทำการเปลี่ยนแปลงโดยตรงกับมุมมองระยะไกลของ การ์ดที่เผยแพร่แล้ว หรือการเปลี่ยนแปลงเหล่านั้นจะไม่แสดงในไทม์ไลน์
วิธีนี้ไม่มีผลหากเปิดใช้การแสดงผลโดยตรง
พารามิเตอร์
การดู | UI ของการ์ด |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
ดูเพิ่มเติม
สาธารณะ LiveCard setVoiceActionEnabled (เปิดใช้บูลีน)
เปิดใช้การสั่งงานด้วยเสียงเมื่อการ์ดแสดงในไทม์ไลน์
เมื่อตั้งค่าแล้ว การ์ดจะคอยตรวจจับว่า "Ok Glass" เมื่อแสดงในไทม์ไลน์
เมื่อมีการพูดวลีป้องกันนี้ จะเรียกให้ความตั้งใจที่ตั้งไว้โดย
setAction(PendingIntent)
วิธี หาก Intent เริ่มต้น
ที่ใช้เมนูเสียงตามบริบท กิจกรรมดังกล่าวจะ
เปิดรายการในเมนูแรก (เช่น มีการพูดคำว่า "Ok Glass" ในกิจกรรม
เอง) ฟีเจอร์นี้ช่วยให้สามารถใช้เมนูเสียงตามบริบทในการ์ดแบบสด
พารามิเตอร์
เปิดใช้ | ควรเปิดใช้การสั่งงานด้วยเสียงไหม |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
ดูเพิ่มเติม
สาธารณะ เป็นโมฆะ เลิกเผยแพร่ ()
ยกเลิกการเผยแพร่การ์ดนี้จากไทม์ไลน์