کارت زنده

در سطح API XE12 اضافه شده است
کلاس عمومی

کارت زنده

این کلاس به شما امکان می دهد کارت های فعال بسازید و آنها را در تایم لاین منتشر کنید.

برای اطلاعات بیشتر در مورد نحوه ایجاد کارت زنده، راهنمای توسعه دهنده Live cards را ببینید.

زندگی یک کارت زنده

کارت‌های زنده به یک زمینه طولانی مدت نیاز دارند تا در تمام مدتی که منتشر می‌شوند مالک آن‌ها شوند، بنابراین باید آنها را در یک Service پس‌زمینه مدیریت کنید. سپس می توانید به محض شروع سرویس یا در پاسخ به رویدادهای دیگری که سرویس نظارت می کند، یک کارت زنده منتشر کنید. به همین ترتیب، زمانی که کارت‌ها دیگر مرتبط نیستند یا زمانی که سرویس از بین رفت، باید انتشار آنها را لغو کنید.

وقتی یک کارت زنده منتشر می‌کنید، می‌توانید انتخاب کنید که چگونه بر کاربران تأثیر می‌گذارد. هنگام انتشار بی‌صدا، کارت بدون هیچ اثر قابل مشاهده در جدول زمانی وارد می‌شود: کاربران برای دیدن کارت باید انگشت خود را به سمت کارت بکشند. همچنین می توانید کارت زنده را بلافاصله پس از انتشار به طور خودکار نمایش دهید. این اغلب زمانی مفید است که رابط کاربری اصلی برنامه شما یک کارت زنده باشد و نه یک فعالیت.

نمایش محتوا در کارت زنده

یک کارت زنده می‌تواند محتوا را از یک منبع طرح‌بندی یا با اجازه دادن به کد شما برای نمایش مستقیم روی سطح طراحی آن نمایش دهد. بر اساس تعداد دفعات به روز رسانی محتوای کارت و اینکه آیا در درجه اول ویجت ها یا گرافیک های آزاد را ارائه می دهید، مناسب ترین روش را برای برنامه خود انتخاب کنید.

بزرگ کردن یک طرح با استفاده از نماهای از راه دور

اگر برنامه شما فقط به ویجت‌های استاندارد و به‌روزرسانی‌های نادر (حدود چند ثانیه یا بیشتر بین بازخوانی‌ها) نیاز دارد، کارت خود را با کمک کلاس 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 نحوه ارائه کارت به کاربر هنگام انتشار را تعیین می کند.
ثابت ها
رشته EXTRA_FROM_LIVECARD_VOICE اضافی Boolean که نشان دهنده یک Intent است با صدا از یک کارت زنده فعال شد.
سازندگان عمومی
LiveCard ( زمینه زمینه، برچسب رشته)
روش های عمومی
کارت زنده
پیوست ( سرویس خدمات)
SurfaceHolder
بولی
خالی
خالی
کارت زنده
کارت زنده
setDirectRenderingEnabled (فعال کردن بولین)
کارت زنده
setRenderer (پردازنده GlRenderer )
کارت زنده
setViews (نماهای RemoteViews )
کارت زنده
setVoiceActionEnabled (فعال کردن بولی)
خالی
روش های ارثی

ثابت ها

در سطح API XE21 اضافه شده است

رشته نهایی ثابت عمومی EXTRA_FROM_LIVECARD_VOICE

اضافی Boolean که نشان دهنده یک Intent است با صدا از یک کارت زنده فعال شد.

مقدار ثابت: "android.intent.extra.EXTRA_FROM_LIVECARD"

سازندگان عمومی

در سطح API XE16 اضافه شده است

LiveCard عمومی ( زمینه زمینه، برچسب رشته )

یک کارت زنده با تگ داده شده ایجاد می کند.

توجه داشته باشید که کارت تا زمانی که به صراحت منتشر نشده باشد ظاهر نمی شود.

مولفه های
متن نوشته زمینه برنامه
برچسب زدن تگ غیر تهی برای کارت؛ این برای اهداف اشکال زدایی است

روش های عمومی

در سطح API XE16 اضافه شده است

پیوست LiveCard عمومی ( سرویس خدمات)

یک Service پس‌زمینه را ضمیمه کنید تا وقتی این کارت منتشر شد، سرویس داده‌شده در پیش‌زمینه اجرا شود.

وقتی این کارت زنده منتشر نشود، این سرویس به طور خودکار از پیش زمینه حذف می شود.

مولفه های
سرویس تنظیم خواهد شد تا در foregound اجرا شود
برمی گرداند
  • این شی برای زنجیره تماس
در سطح API XE12 اضافه شده است

عمومی SurfaceHolder getSurfaceHolder ()

هنگامی که رندر مستقیم فعال است، به Surface که روی آن طراحی می شود دسترسی پیدا می کند.

توجه داشته باشید که SurfaceHolder بازگشتی باید به سادگی به عنوان وسیله ای برای دسترسی به سطح مدیریت شده استفاده شود. روش های تغییر شکل و نوع سطح بدون عملیات است.

همچنین توجه داشته باشید که فراخوانی برای این شی در رشته UI انجام نمی شود.

همچنین ببینید
در سطح API XE12 اضافه شده است

بولین عمومی منتشر شده است ()

اگر کارت در حال حاضر منتشر شده باشد، true .

در سطح API XE16 اضافه شده است

پیمایش خلأ عمومی ()

کاربر را در تایم لاین به این کارت می فرستد.

پرتاب می کند
IllegalStateException در صورت عدم انتشار کارت
در سطح API XE12 اضافه شده است

انتشار خالی عمومی (حالت LiveCard.PublishMode )

این کارت را در جدول زمانی منتشر می کند.

کارت فقط در صورتی نمایش داده می‌شود که عملکردی داشته باشد و رندر مستقیم فعال باشد یا نماهای از راه دور تنظیم شده باشد.

مولفه های
حالت نحوه ارائه کارت به کاربر را تعیین می کند
در سطح API XE12 اضافه شده است

setAction عمومی LiveCard ( PendingIntent intent)

اقدام انجام شده هنگام انتخاب کارت را تغییر می دهد.

مولفه های
قصد با انتخاب کارت اخراج می شود
برمی گرداند
  • این شی برای زنجیره تماس
در سطح API XE12 اضافه شده است

عمومی LiveCard setDirectRenderingEnabled (فعال کردن بولین)

رندر مستقیم را فعال می کند.

در این حالت، محتوای کارت باید مستقیماً در یک Surface ارائه شود.

توجه داشته باشید که این روش فقط زمانی قابل فراخوانی است که کارت منتشر نشده باشد و در غیر این صورت یک استثنا ایجاد می کند.

مولفه های
فعال کردن آیا رندر مستقیم باید فعال شود یا خیر
برمی گرداند
  • این شی برای زنجیره تماس
همچنین ببینید
در سطح API XE16 اضافه شده است

عمومی LiveCard setRenderer (پردازنده GlRenderer )

یک رندر مبتنی بر OpenGL اضافه می کند.

رندر برای کشیدن روی سطح درخواستی (به طور خودکار) برای رندر مستقیم استفاده می شود.

برمی گرداند
  • این شی برای زنجیره تماس
در سطح API XE12 اضافه شده است

setViews عمومی LiveCard (نماهای RemoteViews )

RemoteViews مورد استفاده برای نمایش رابط کاربری این کارت را تغییر می‌دهد.

این روش همچنین باید پس از ایجاد هرگونه تغییر به طور مستقیم در نماهای از راه دور کارت منتشر شده فراخوانی شود، در غیر این صورت آن تغییرات در جدول زمانی منعکس نخواهد شد.

اگر رندر مستقیم فعال باشد، این روش تاثیری ندارد.

مولفه های
دیدگاه ها رابط کاربری کارت
برمی گرداند
  • این شی برای زنجیره تماس
همچنین ببینید
در سطح API XE21 اضافه شده است

عمومی LiveCard setVoiceActionEnabled (فعال کردن بولین)

هنگامی که کارت در خط زمانی نشان داده می شود، عملکرد صوتی را فعال می کند.

هنگام تنظیم، کارت وقتی در جدول زمانی نشان داده می‌شود به «ok glass» گوش می‌دهد و هنگامی که این عبارت محافظ گفته می‌شود، هدفی را که با روش setAction(PendingIntent) تنظیم شده است، شلیک می‌کند. اگر هدف فعالیتی را شروع کند که منوهای صوتی متنی را پیاده‌سازی می‌کند، فعالیت به‌طور خودکار در اولین آیتم‌های منو باز می‌شود (به‌عنوان مثال «ok glass» در داخل خود فعالیت گفته می‌شود). این ویژگی اجرای منوهای صوتی متنی را در کارت های زنده امکان پذیر می کند.

مولفه های
فعال کردن آیا عملکرد صوتی باید فعال شود
برمی گرداند
  • این شی برای زنجیره تماس
همچنین ببینید
در سطح API XE12 اضافه شده است

خلأ عمومی لغو انتشار ()

انتشار این کارت را از جدول زمانی لغو می کند.