การ์ดสด

เพิ่มในระดับ API XE12 แล้ว
คลาสสาธารณะ

การ์ดสด

ชั้นเรียนนี้ช่วยให้คุณสร้างการ์ดที่ใช้งานอยู่และเผยแพร่ในไทม์ไลน์ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีสร้างการ์ดการถ่ายทอดสดได้ที่คู่มือนักพัฒนาซอฟต์แวร์การ์ดสด

บัตรถ่ายทอดสด

การ์ดสดต้องอาศัยบริบทที่ยาวนานจึงจะเป็นเจ้าของได้ตลอดช่วงเวลาที่เผยแพร่การ์ด คุณจึงควรจัดการการ์ดดังกล่าวในเบื้องหลัง 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 มีการเปิดใช้งานด้วยเสียงจากการ์ดการถ่ายทอดสด
สิ่งก่อสร้างสาธารณะ
การ์ดสด (บริบท บริบท, แท็ก สตริง)
เมธอดสาธารณะ
การ์ดสด
แนบ(บริการ บริการ)
ที่ใส่พื้นผิว
บูลีน
โมฆะ
โมฆะ
การ์ดสด
setAction (ความตั้งใจ PENDINGIntent)
การ์ดสด
setDirectRenderingEnabled (เปิดใช้บูลีน)
การ์ดสด
setRenderer(ตัวแสดงผล GlRenderer)
การ์ดสด
setViews (ยอดดู RemoteViews)
การ์ดสด
setVoiceActionEnabled(เปิดใช้บูลีน)
โมฆะ
วิธีการรับค่า

ค่าคงที่

เพิ่มในระดับ API XE21 แล้ว

สาธารณะ ภาพนิ่ง สุดท้าย สตริง Extra_FROM_LIVECARD_VOICE

บูลีนเพิ่มเติมที่ระบุว่า Intent มีการเปิดใช้งานด้วยเสียงจากการ์ดการถ่ายทอดสด

ค่าคงที่: "android.intent.extra.Extra_FROM_LIVECARD"

สิ่งก่อสร้างสาธารณะ

เพิ่มในระดับ API XE16 แล้ว

สาธารณะ Liveการ์ด (บริบทของบริบท, แท็ก สตริง)

สร้างการ์ดถ่ายทอดสดที่มีแท็กที่ระบุ

โปรดทราบว่าการ์ดจะไม่ปรากฏจนกว่าจะมีการเผยแพร่อย่างชัดเจน

พารามิเตอร์
บริบท บริบทของแอปพลิเคชัน
แท็ก แท็กที่ไม่เป็นค่าว่างของการ์ด เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง

เมธอดสาธารณะ

เพิ่มในระดับ API XE16 แล้ว

สาธารณะ LiveCard attach (บริการ บริการ)

แนบพื้นหลัง Service เพื่อให้เผยแพร่การ์ดนี้ บริการนั้นๆ จะได้รับการตั้งค่าให้ทํางานเบื้องหน้า

ระบบจะนําบริการออกจากเบื้องหน้าโดยอัตโนมัติเมื่อเลิกเผยแพร่การ์ดสดนี้

พารามิเตอร์
บริการ จะถูกตั้งค่าให้ทํางานใน ตัวอย่างเช่น
การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ Surface Holder getSurfaceผู้ถือ ()

เมื่อเปิดใช้การแสดงผลโดยตรง จะเป็นการให้สิทธิ์เข้าถึง Surface ที่จะวาด

โปรดทราบว่าควรใช้ SurfaceHolder ที่แสดงผลเป็นวิธีเข้าถึงแพลตฟอร์มที่มีการจัดการเท่านั้น วิธีเปลี่ยนรูปร่างและประเภทพื้นผิวไม่ใช่คําสั่ง

โปรดทราบว่าการเรียกกลับสําหรับออบเจ็กต์นี้ไม่ได้เกิดขึ้นในชุดข้อความ UI

ดูเพิ่มเติม
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ บูลีน เผยแพร่แล้ว ()

แสดงผล true หากเผยแพร่การ์ดอยู่ในขณะนี้

เพิ่มในระดับ API XE16 แล้ว

สาธารณะ โมฆะ นําทาง ()

ส่งผู้ใช้ไปยังการ์ดนี้ในไทม์ไลน์

ผ้าคลุม
ผิดกฎหมายสถานะข้อยกเว้น หากบัตรยังไม่ได้รับการเผยแพร่
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ blank publish (LiveCard.PublishMode)

เผยแพร่การ์ดนี้ไปยังไทม์ไลน์

การ์ดจะแสดงเมื่อมีการดําเนินการเท่านั้น และมีการเปิดใช้การแสดงผลโดยตรงหรือตั้งค่ามุมมองระยะไกล

พารามิเตอร์
โหมด กําหนดวิธีแสดงการ์ดแก่ผู้ใช้
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ LiveCard setAction (PENDINGIntent ความตั้งใจ)

เปลี่ยนการดําเนินการที่เลือกเมื่อเลือกการ์ดแล้ว

พารามิเตอร์
Intent จะเริ่มทํางานเมื่อเลือกการ์ด
การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ LiveCard setDirectRenderingEnabled (เปิดใช้บูลีน)

เปิดใช้การแสดงผลโดยตรง

ในโหมดนี้ เนื้อหาการ์ดจะต้องแสดงผลเป็น Surface โดยตรง

โปรดทราบว่าวิธีนี้จะเรียกได้ก็ต่อเมื่อไม่มีการเผยแพร่การ์ด ยกเว้นข้อยกเว้น

พารามิเตอร์
เปิดใช้ ควรเปิดใช้การแสดงผลโดยตรงหรือไม่
การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
เพิ่มในระดับ API XE16 แล้ว

สาธารณะ LiveCard setRenderer (GlRenderer ตัวแสดงผล)

เพิ่มตัวแสดงผลแบบ OpenGL

ระบบจะใช้ตัวแสดงผลเพื่อวาดบนพื้นผิวที่ขอ (โดยอัตโนมัติ) สําหรับการแสดงผลโดยตรง

การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ LiveCard setViews ( RemoteViews มุมมอง)

เปลี่ยน RemoteViews ที่ใช้เพื่อแสดง UI ของการ์ดนี้

ซึ่งควรเรียกใช้วิธีนี้หลังจากทําการเปลี่ยนแปลงมุมมองจากระยะไกลของการ์ดที่เผยแพร่โดยตรง มิเช่นนั้น การเปลี่ยนแปลงเหล่านั้นจะไม่แสดงในไทม์ไลน์

วิธีนี้จะไม่มีผลหากเปิดใช้การแสดงผลโดยตรง

พารามิเตอร์
ครั้ง UI ของการ์ด
การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
เพิ่มในระดับ API XE21 แล้ว

สาธารณะ LiveCard setVoiceActionEnabled (เปิดใช้บูลีน)

เปิดใช้การสั่งงานด้วยเสียงเมื่อการ์ดแสดงในไทม์ไลน์

เมื่อตั้งค่าไว้ การ์ดจะคอยฟังคําว่า "Ok Glass" เมื่อแสดงในไทม์ไลน์ และเมื่อ Guard วลีนี้เริ่มทํางาน จะเป็นการเริ่มให้ Intent ที่เมธอด setAction(PendingIntent) เริ่มทํางาน หาก Intent เริ่มกิจกรรมที่ใช้เมนูเสียงตามบริบท กิจกรรมจะเปิดขึ้นในรายการเมนูแรกโดยอัตโนมัติ (เช่น มีการพูด "Ok Glass" ภายในกิจกรรม) ฟีเจอร์นี้จะเปิดใช้เมนูเสียงตามบริบทบนการ์ดแบบสด

พารามิเตอร์
เปิดใช้ ควรเปิดใช้การทํางานด้วยเสียงหรือไม่
การคืนสินค้า
  • ออบเจ็กต์นี้สําหรับเชนการโทร
ดูเพิ่มเติม
เพิ่มในระดับ API XE12 แล้ว

สาธารณะ Null ยกเลิกการเผยแพร่ ()

เลิกเผยแพร่การ์ดนี้จากไทม์ไลน์