کارت زنده
این کلاس به شما امکان می دهد کارت های فعال بسازید و آنها را در تایم لاین منتشر کنید.
برای اطلاعات بیشتر در مورد نحوه ایجاد کارت زنده، راهنمای توسعه دهنده 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 است با صدا از یک کارت زنده فعال شد. |
سازندگان عمومی | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
روش های عمومی | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
کارت زنده | |||||||||||
SurfaceHolder | |||||||||||
بولی | |||||||||||
باطل | پیمایش () | ||||||||||
باطل | انتشار (حالت LiveCard.PublishMode ) | ||||||||||
کارت زنده | setAction (نیت PendingIntent ) | ||||||||||
کارت زنده | setDirectRenderingEnabled (فعال کردن بولین) | ||||||||||
کارت زنده | setRenderer (پردازنده GlRenderer ) | ||||||||||
کارت زنده | setViews (نماهای RemoteViews ) | ||||||||||
کارت زنده | setVoiceActionEnabled (فعال کردن بولی) | ||||||||||
باطل | لغو انتشار () |
روش های ارثی | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ثابت ها
سازندگان عمومی
روش های عمومی
پیوست LiveCard عمومی ( سرویس خدمات)
یک Service
پسزمینه را ضمیمه کنید تا وقتی این کارت منتشر شد، سرویس دادهشده در پیشزمینه اجرا شود.
وقتی این کارت زنده منتشر نشود، این سرویس به طور خودکار از پیش زمینه حذف می شود.
پارامترها
خدمات | تنظیم خواهد شد تا در foregound اجرا شود |
---|
برمی گرداند
- این شی برای زنجیره تماس
عمومی SurfaceHolder getSurfaceHolder ()
هنگامی که رندر مستقیم فعال است، به Surface
که روی آن طراحی می شود دسترسی پیدا می کند.
توجه داشته باشید که SurfaceHolder
بازگشتی باید به سادگی به عنوان وسیله ای برای دسترسی به سطح مدیریت شده استفاده شود. روش های تغییر شکل و نوع سطح بدون عملیات است.
همچنین توجه داشته باشید که فراخوانی برای این شی در رشته UI انجام نمی شود.
همچنین ببینید
بولین عمومی منتشر شده است ()
اگر کارت در حال حاضر منتشر شده باشد، true
است.
پیمایش خلأ عمومی ()
کاربر را در تایم لاین به این کارت می فرستد.
پرتاب می کند
IllegalStateException | در صورت عدم انتشار کارت |
---|
انتشار خالی عمومی (حالت LiveCard.PublishMode )
این کارت را در جدول زمانی منتشر می کند.
کارت فقط در صورتی نمایش داده میشود که عملکردی داشته باشد و رندر مستقیم فعال باشد یا نماهای از راه دور تنظیم شده باشد.
پارامترها
حالت | نحوه ارائه کارت به کاربر را تعیین می کند |
---|
setAction عمومی LiveCard ( PendingIntent intent)
اقدام انجام شده هنگام انتخاب کارت را تغییر می دهد.
پارامترها
قصد | با انتخاب کارت اخراج می شود |
---|
برمی گرداند
- این شی برای زنجیره تماس
عمومی LiveCard setDirectRenderingEnabled (فعال کردن بولین)
رندر مستقیم را فعال می کند.
در این حالت، محتوای کارت باید مستقیماً در یک Surface
ارائه شود.
توجه داشته باشید که این روش فقط زمانی قابل فراخوانی است که کارت منتشر نشده باشد و در غیر این صورت یک استثنا ایجاد می کند.
پارامترها
فعال کردن | آیا رندر مستقیم باید فعال شود یا خیر |
---|
برمی گرداند
- این شی برای زنجیره تماس
همچنین ببینید
عمومی LiveCard setRenderer (پردازنده GlRenderer )
یک رندر مبتنی بر OpenGL اضافه می کند.
رندر برای کشیدن روی سطح درخواستی (به طور خودکار) برای رندر مستقیم استفاده می شود.
برمی گرداند
- این شی برای زنجیره تماس
setViews عمومی LiveCard (نماهای RemoteViews )
RemoteViews
مورد استفاده برای نمایش رابط کاربری این کارت را تغییر میدهد.
این روش همچنین باید پس از ایجاد هرگونه تغییر به طور مستقیم در نماهای از راه دور کارت منتشر شده فراخوانی شود، در غیر این صورت آن تغییرات در جدول زمانی منعکس نخواهد شد.
اگر رندر مستقیم فعال باشد، این روش تاثیری ندارد.
پارامترها
دیدگاه ها | رابط کاربری کارت |
---|
برمی گرداند
- این شی برای زنجیره تماس
همچنین ببینید
عمومی LiveCard setVoiceActionEnabled (فعال کردن بولین)
هنگامی که کارت در خط زمانی نشان داده می شود، عملکرد صوتی را فعال می کند.
هنگام تنظیم، کارت وقتی در جدول زمانی نشان داده میشود به «ok glass» گوش میدهد و هنگامی که این عبارت محافظ گفته میشود، هدفی را که با روش setAction(PendingIntent)
تنظیم شده است، شلیک میکند. اگر هدف فعالیتی را شروع کند که منوهای صوتی متنی را پیادهسازی میکند، فعالیت بهطور خودکار در اولین آیتمهای منو باز میشود (بهعنوان مثال «ok glass» در داخل خود فعالیت گفته میشود). این ویژگی اجرای منوهای صوتی متنی را در کارت های زنده امکان پذیر می کند.
پارامترها
فعال کردن | آیا عملکرد صوتی باید فعال شود یا خیر |
---|
برمی گرداند
- این شی برای زنجیره تماس
همچنین ببینید
خلأ عمومی لغو انتشار ()
این کارت را از جدول زمانی لغو انتشار می کند.