LiveCard
Với lớp học này, bạn có thể tạo thẻ đang hoạt động và xuất bản những thẻ đó trên dòng thời gian.
Để biết thêm thông tin về cách tạo thẻ trực tiếp, hãy xem Hướng dẫn cho nhà phát triển về Thẻ trực tiếp.
Vòng đời của một thẻ trực tiếp
Thẻ trực tiếp cần có bối cảnh lâu dài để sở hữu thẻ trong toàn bộ thời gian
đã xuất bản, do đó bạn nên quản lý chúng ở chế độ nền Service
. Sau đó, bạn có thể
xuất bản một thẻ trực tiếp ngay khi dịch vụ bắt đầu hoặc để phản hồi các sự kiện khác mà
công cụ giám sát dịch vụ. Tương tự, bạn nên huỷ xuất bản thẻ khi chúng không còn phù hợp hoặc khi
dịch vụ bị huỷ bỏ.
Khi xuất bản thẻ đã xuất bản, bạn có thể chọn mức độ ảnh hưởng của việc này đến người dùng. Khi xuất bản ngầm, thẻ sẽ được chèn vào dòng thời gian mà không có bất kỳ tác động rõ ràng nào: người dùng phải vuốt để để xem thông tin đó. Bạn cũng có thể để thẻ đang hoạt động tự động hiển thị ngay sau khi thẻ đã xuất bản. Điều này thường hữu ích khi giao diện người dùng chính của ứng dụng là một thẻ trực tiếp chứ không phải là một hoạt động.
Hiển thị nội dung trên thẻ trực tiếp
Thẻ trực tiếp có thể hiển thị nội dung từ tài nguyên bố cục hoặc bằng cách cho phép mã của bạn hiển thị trực tiếp trên bề mặt vẽ. Chọn phương pháp phù hợp nhất với ứng dụng của bạn về tần suất bạn cần cập nhật nội dung trên thẻ và liệu bạn có chủ yếu kết xuất nội dung hay không hoặc đồ hoạ dạng tự do.
Tăng cường bố cục bằng khung hiển thị từ xa
Nếu ứng dụng của bạn chỉ yêu cầu các tiện ích tiêu chuẩn và cập nhật không thường xuyên (khoảng vài giây hoặc
lâu hơn giữa các lần làm mới), thì hãy tạo thẻ với sự trợ giúp của lớp RemoteViews
.
Đối tượng RemoteViews
cho phép dòng thời gian của Glass, chạy trong một quy trình riêng biệt với
mã xử lý ứng dụng của riêng bạn, tăng cường bố cục mà bạn đã tạo.
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
Lưu ý rằng sau khi xuất bản thẻ sử dụng RemoteViews
, các thay đổi đối với chế độ xem bằng cách
gọi các phương thức set*
sẽ không xuất hiện trên dòng thời gian trừ phi bạn gọi một cách rõ ràng
setViews
trên thẻ đang hoạt động một lần nữa để buộc cập nhật.
Vẽ trực tiếp trên bề mặt thẻ trực tiếp
Nếu ứng dụng của bạn yêu cầu cập nhật thường xuyên hơn (vài lần mỗi giây) hoặc hiển thị nhiều hơn
đồ hoạ chi tiết hơn so với hỗ trợ của tiện ích tiêu chuẩn, cho phép kết xuất trực tiếp và thêm
SurfaceHolder.Callback
vào giao diện của thẻ.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
Sau đó, bạn có thể vẽ trực tiếp trên bề mặt bên trong luồng nền hoặc theo phản hồi
các sự kiện (ví dụ: thông báo cập nhật về cảm biến hoặc vị trí). Sử dụng surfaceCreated
và
Phương thức surfaceDestroyed
để bắt đầu và dừng logic kết xuất khi thẻ được
được hiển thị hoặc bị ẩn.
Lưu ý rằng các phương thức gọi lại của phần tử giữ nền tảng sẽ không được gọi trên luồng giao diện người dùng chính.
Xử lý lựa chọn thẻ trực tiếp
Thẻ trực tiếp phải cung cấp một hành động (PendingIntent
để bắt đầu một hoạt động,
hoặc thực hiện truyền tin) sẽ được thực thi khi người dùng nhấn để chọn thẻ.
Thông thường, bạn sẽ sử dụng thao tác này để chạy một hoạt động hiển thị trình đơn tuỳ chọn hoặc thực hiện
người dùng vào một phần khác của ứng dụng. Ít nhất, bạn nên cung cấp một tuỳ chọn
cho phép người dùng xoá thẻ trực tiếp khỏi dòng thời gian.
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
Các thẻ trực tiếp không có tác vụ sẽ không được hiển thị.
Lớp lồng ghép | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
enum | LiveCard.PublishMode | Xác định cách thẻ hiển thị cho người dùng khi được xuất bản. |
Hằng số | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | Giá trị bổ sung Boolean biểu thị Intent đã được kích hoạt bằng giọng nói từ một thẻ trực tiếp. |
Công ty xây dựng công cộng | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Phương thức công khai | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
boolean | |||||||||||
void |
navigate()
|
||||||||||
void |
publish(chế độ LiveCard.PublishMode)
|
||||||||||
LiveCard |
setAction(Ý định PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(boolean bật)
|
||||||||||
LiveCard |
setRenderer(trình kết xuất GlRenderer)
|
||||||||||
LiveCard |
setViews(chế độ xem RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(boolean bật)
|
||||||||||
void |
Phương thức kế thừa | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Hằng số
Công ty xây dựng công cộng
Phương thức công khai
công khai LiveCard đính kèm (Dịch vụ dịch vụ)
Hãy đính kèm Service
nền để khi thẻ này được
được xuất bản, dịch vụ nhất định sẽ được đặt để chạy ở nền trước.
Dịch vụ sẽ tự động bị xoá khỏi nền trước khi thẻ trực tiếp chưa được xuất bản.
Tham số
dịch vụ | sẽ được thiết lập để chạy theo ngôn ngữ trước |
---|
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
công khai SurfaceHolder getSurfaceHolder ()
Khi tính năng kết xuất trực tiếp được bật, hãy cấp quyền truy cập vào Surface
để vẽ.
Lưu ý rằng bạn chỉ nên sử dụng SurfaceHolder
được trả về như một phương tiện để truy cập vào
nền tảng được quản lý. Các phương thức thay đổi hình dạng và loại bề mặt là không hoạt động.
Ngoài ra, xin lưu ý rằng các lệnh gọi lại cho đối tượng này không được thực hiện trong luồng giao diện người dùng.
Xem thêm
công khai boolean isPublished ()
Trả về true
nếu thẻ đang được xuất bản.
công khai trống điều hướng ()
Chuyển người dùng đến thẻ này trong dòng thời gian.
Gửi
IllegalStateException | nếu thẻ không được xuất bản |
---|
công khai trống xuất bản (Chế độ LiveCard.PublishMode)
Xuất bản thẻ này lên dòng thời gian.
Thẻ sẽ chỉ hiển thị nếu có một thao tác, và nếu tính năng kết xuất trực tiếp được bật hoặc đã đặt chế độ xem từ xa.
Tham số
chế độ | xác định cách thẻ hiển thị với người dùng |
---|
công khai LiveCard setAction (PendingIntent ý định)
Thay đổi hành động được thực hiện khi thẻ được chọn.
Tham số
cơ chế | sẽ được kích hoạt khi thẻ được chọn |
---|
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
công khai LiveCard setDirectRenderingEnabled (bật boolean)
Bật kết xuất trực tiếp.
Ở chế độ này, nội dung thẻ sẽ phải được kết xuất trực tiếp vào Surface
.
Lưu ý rằng phương thức này chỉ có thể được gọi khi thẻ không được xuất bản và phương thức này sẽ khác gửi một trường hợp ngoại lệ.
Tham số
bật | có nên bật tính năng kết xuất trực tiếp hay không |
---|
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
Xem thêm
công khai LiveCard setRenderer (GlRenderer trình kết xuất đồ hoạ)
Thêm trình kết xuất đồ hoạ dựa trên OpenGL.
Trình kết xuất đồ hoạ sẽ được dùng để vẽ lên một bề mặt được yêu cầu (tự động) để trực tiếp kết xuất hình ảnh.
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
công khai LiveCard setViews (RemoteViews lượt xem)
Thay đổi RemoteViews
dùng để hiển thị giao diện người dùng của thẻ này.
Phương thức này cũng nên được gọi sau khi thực hiện bất kỳ thay đổi nào trực tiếp đối với các khung hiển thị từ xa của thẻ đã xuất bản hoặc những thay đổi đó sẽ không được phản ánh trên dòng thời gian.
Phương thức này không có hiệu lực nếu bạn bật tính năng kết xuất trực tiếp.
Tham số
views | giao diện người dùng của thẻ |
---|
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
Xem thêm
công khai LiveCard setVoiceActionEnabled (bật boolean)
Bật tác vụ thoại khi thẻ được hiển thị trên dòng thời gian.
Khi được đặt, thẻ sẽ nghe cụm từ "ok Glass" khi được hiển thị trên dòng thời gian và
khi cụm từ bảo vệ này được nói, sẽ kích hoạt ý định đã được đặt bởi
setAction(PendingIntent)
. Nếu ý định bắt đầu một
hoạt động triển khai trình đơn giọng nói theo ngữ cảnh, thì hoạt động đó sẽ tự động
mở trên các mục đầu tiên trong trình đơn (ví dụ: như thể bạn nói "ok ly" bên trong hoạt động
). Tính năng này cho phép triển khai trình đơn giọng nói theo ngữ cảnh trên các thẻ trực tiếp.
Tham số
bật | có nên bật thao tác bằng giọng nói không |
---|
Giá trị trả về
- đối tượng này để tạo chuỗi lệnh gọi
Xem thêm
công khai trống huỷ xuất bản ()
Huỷ xuất bản thẻ này khỏi tiến trình.