การ์ดสด
ชั้นเรียนนี้ช่วยให้คุณสร้างการ์ดที่ใช้งานอยู่และเผยแพร่ในไทม์ไลน์ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการ์ดการถ่ายทอดสดได้ที่คู่มือนักพัฒนาซอฟต์แวร์การ์ดสด
บัตรถ่ายทอดสด
การ์ดสดต้องอาศัยบริบทที่ยาวนานจึงจะเป็นเจ้าของได้ตลอดช่วงเวลาที่เผยแพร่การ์ด คุณจึงควรจัดการการ์ดดังกล่าวในเบื้องหลัง 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
เพื่อเริ่มและหยุดตรรกะการแสดงผลเมื่อแสดงหรือซ่อนการ์ด
โปรดทราบว่าไม่มีการเรียกใช้เมธอดเรียกกลับของเจ้าของแพลตฟอร์มในชุดข้อความของ UI หลัก
การจัดการตัวเลือกบัตรแบบสด
การ์ดสดต้องมีการดําเนินการ (PendingIntent
เพื่อเริ่มกิจกรรม บริการ หรือออกอากาศ) ซึ่งจะมีการดําเนินการเมื่อผู้ใช้แตะเพื่อเลือกการ์ด
โดยปกติคุณจะใช้การดําเนินการนี้เพื่อเปิดกิจกรรมที่แสดงเมนูตัวเลือกหรือนําผู้ใช้ไปยังส่วนอื่นของแอปพลิเคชัน อย่างน้อยที่สุด คุณควรมีตัวเลือกที่ให้ผู้ใช้นําการ์ดข้อมูลสดออกจากไทม์ไลน์
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
บัตรข้อมูลสดที่ไม่มีการดําเนินการจะไม่แสดง
ชั้นเรียนที่ฝังไว้ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | กําหนดวิธีแสดงการ์ดแก่ผู้ใช้เมื่อเผยแพร่ |
ค่าคงที่ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
สตริง | การ์ดเสียงพิเศษ | บูลีนเพิ่มเติมที่ระบุว่า Intent มีการเปิดใช้งานด้วยเสียงจากการ์ดการถ่ายทอดสด |
สิ่งก่อสร้างสาธารณะ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
เมธอดสาธารณะ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
การ์ดสด | |||||||||||
ที่ใส่พื้นผิว | |||||||||||
บูลีน | |||||||||||
โมฆะ | |||||||||||
โมฆะ |
เผยแพร่(โหมด LiveCard.PublishMode)
|
||||||||||
การ์ดสด |
setAction (ความตั้งใจ PENDINGIntent)
|
||||||||||
การ์ดสด |
setDirectRenderingEnabled (เปิดใช้บูลีน)
|
||||||||||
การ์ดสด |
setRenderer(ตัวแสดงผล GlRenderer)
|
||||||||||
การ์ดสด |
setViews (ยอดดู RemoteViews)
|
||||||||||
การ์ดสด |
setVoiceActionEnabled(เปิดใช้บูลีน)
|
||||||||||
โมฆะ |
วิธีการรับค่า | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ค่าคงที่
สิ่งก่อสร้างสาธารณะ
สาธารณะ Liveการ์ด (บริบทของบริบท, แท็ก สตริง)
สร้างการ์ดถ่ายทอดสดที่มีแท็กที่ระบุ
โปรดทราบว่าการ์ดจะไม่ปรากฏจนกว่าจะมีการเผยแพร่อย่างชัดเจน
พารามิเตอร์
บริบท | บริบทของแอปพลิเคชัน |
---|---|
แท็ก | แท็กที่ไม่เป็นค่าว่างของการ์ด เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง |
เมธอดสาธารณะ
สาธารณะ LiveCard attach (บริการ บริการ)
แนบพื้นหลัง Service
เพื่อให้เผยแพร่การ์ดนี้ บริการนั้นๆ จะได้รับการตั้งค่าให้ทํางานเบื้องหน้า
ระบบจะนําบริการออกจากเบื้องหน้าโดยอัตโนมัติเมื่อเลิกเผยแพร่การ์ดสดนี้
พารามิเตอร์
บริการ | จะถูกตั้งค่าให้ทํางานใน ตัวอย่างเช่น |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
สาธารณะ Surface Holder getSurfaceผู้ถือ ()
เมื่อเปิดใช้การแสดงผลโดยตรง จะเป็นการให้สิทธิ์เข้าถึง Surface
ที่จะวาด
โปรดทราบว่าควรใช้ SurfaceHolder
ที่แสดงผลเป็นวิธีเข้าถึงแพลตฟอร์มที่มีการจัดการเท่านั้น วิธีเปลี่ยนรูปร่างและประเภทพื้นผิวไม่ใช่คําสั่ง
โปรดทราบว่าการเรียกกลับสําหรับออบเจ็กต์นี้ไม่ได้เกิดขึ้นในชุดข้อความ UI
ดูเพิ่มเติม
สาธารณะ บูลีน เผยแพร่แล้ว ()
แสดงผล true
หากเผยแพร่การ์ดอยู่ในขณะนี้
สาธารณะ โมฆะ นําทาง ()
ส่งผู้ใช้ไปยังการ์ดนี้ในไทม์ไลน์
ผ้าคลุม
ผิดกฎหมายสถานะข้อยกเว้น | หากบัตรยังไม่ได้รับการเผยแพร่ |
---|
สาธารณะ blank publish (LiveCard.PublishMode)
เผยแพร่การ์ดนี้ไปยังไทม์ไลน์
การ์ดจะแสดงเมื่อมีการดําเนินการเท่านั้น และมีการเปิดใช้การแสดงผลโดยตรงหรือตั้งค่ามุมมองระยะไกล
พารามิเตอร์
โหมด | กําหนดวิธีแสดงการ์ดแก่ผู้ใช้ |
---|
สาธารณะ LiveCard setAction (PENDINGIntent ความตั้งใจ)
เปลี่ยนการดําเนินการที่เลือกเมื่อเลือกการ์ดแล้ว
พารามิเตอร์
Intent | จะเริ่มทํางานเมื่อเลือกการ์ด |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
สาธารณะ LiveCard setDirectRenderingEnabled (เปิดใช้บูลีน)
เปิดใช้การแสดงผลโดยตรง
ในโหมดนี้ เนื้อหาการ์ดจะต้องแสดงผลเป็น Surface
โดยตรง
โปรดทราบว่าวิธีนี้จะเรียกได้ก็ต่อเมื่อไม่มีการเผยแพร่การ์ด ยกเว้นข้อยกเว้น
พารามิเตอร์
เปิดใช้ | ควรเปิดใช้การแสดงผลโดยตรงหรือไม่ |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
สาธารณะ LiveCard setRenderer (GlRenderer ตัวแสดงผล)
เพิ่มตัวแสดงผลแบบ OpenGL
ระบบจะใช้ตัวแสดงผลเพื่อวาดบนพื้นผิวที่ขอ (โดยอัตโนมัติ) สําหรับการแสดงผลโดยตรง
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
สาธารณะ LiveCard setViews ( RemoteViews มุมมอง)
เปลี่ยน RemoteViews
ที่ใช้เพื่อแสดง UI ของการ์ดนี้
ซึ่งควรเรียกใช้วิธีนี้หลังจากทําการเปลี่ยนแปลงมุมมองจากระยะไกลของการ์ดที่เผยแพร่โดยตรง มิเช่นนั้น การเปลี่ยนแปลงเหล่านั้นจะไม่แสดงในไทม์ไลน์
วิธีนี้จะไม่มีผลหากเปิดใช้การแสดงผลโดยตรง
พารามิเตอร์
ครั้ง | UI ของการ์ด |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
สาธารณะ LiveCard setVoiceActionEnabled (เปิดใช้บูลีน)
เปิดใช้การสั่งงานด้วยเสียงเมื่อการ์ดแสดงในไทม์ไลน์
เมื่อตั้งค่าไว้ การ์ดจะคอยฟังคําว่า "Ok Glass" เมื่อแสดงในไทม์ไลน์ และเมื่อ Guard วลีนี้เริ่มทํางาน จะเป็นการเริ่มให้ Intent ที่เมธอด setAction(PendingIntent)
เริ่มทํางาน หาก Intent เริ่มกิจกรรมที่ใช้เมนูเสียงตามบริบท กิจกรรมจะเปิดขึ้นในรายการเมนูแรกโดยอัตโนมัติ (เช่น มีการพูด "Ok Glass" ภายในกิจกรรม) ฟีเจอร์นี้จะเปิดใช้เมนูเสียงตามบริบทบนการ์ดแบบสด
พารามิเตอร์
เปิดใช้ | ควรเปิดใช้การทํางานด้วยเสียงหรือไม่ |
---|
การคืนสินค้า
- ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
สาธารณะ Null ยกเลิกการเผยแพร่ ()
เลิกเผยแพร่การ์ดนี้จากไทม์ไลน์