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" ในกิจกรรม
เอง) ฟีเจอร์นี้ช่วยให้สามารถใช้เมนูเสียงตามบริบทในการ์ดแบบสด
พารามิเตอร์
| เปิดใช้ | ควรเปิดใช้การสั่งงานด้วยเสียงไหม |
|---|
การคืนสินค้า
- ออบเจ็กต์นี้สำหรับเชนการเรียก
ดูเพิ่มเติม
สาธารณะ เป็นโมฆะ เลิกเผยแพร่ ()
ยกเลิกการเผยแพร่การ์ดนี้จากไทม์ไลน์