بطاقة مباشرة

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12
صف عام

بطاقة مباشرة

يتيح لك هذا الصف إنشاء بطاقات نشطة ونشرها على المخطط الزمني.

للحصول على المزيد من المعلومات حول كيفية إنشاء بطاقات بث مباشر، يُرجى مراجعة دليل مطوّري برامج البطاقات المباشرة.

عمر البطاقة المباشرة

تتطلّب البطاقات المباشرة سياقًا قديمًا لامتلاكها طوال وقت نشرها، لذا يجب إدارتها في الخلفية 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 لبدء منطق العرض وإيقافه عند عرض البطاقة أو إخفائها.

لاحظ أنه لا يتم استدعاء طرق معاودة الاتصال لمالك السطح في سلسلة محادثات واجهة المستخدم الرئيسية.

التعامل مع اختيار البطاقة المباشرة

يجب أن تقدّم البطاقة المباشرة إجراءً (PendingIntent لبدء نشاط أو خدمة أو تنفيذ عملية بث) والتي سيتم تنفيذها عندما ينقر المستخدم لاختيار البطاقة. ستستخدم عادةً هذا الإجراء لبدء نشاط يعرض قائمة خيارات أو ينقل المستخدم إلى جزء آخر من تطبيقك. يجب توفير خيار يتيح للمستخدم إزالة البطاقة المباشرة من المخطط الزمني على أقلّ تقدير.

     LiveCard liveCard; // initialized elsewhere
     Intent intent = new Intent(context, MyActivity.class);
     liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
 

لن يتم عرض البطاقات المباشرة التي ليس لها إجراء.

فصول متداخلة
تعداد وضع LiveCard.Publish يحدِّد هذا الإعداد طريقة عرض البطاقة على المستخدم عند نشرها. 
الثوابت
سلسلة EXTRA_FROM_LIVECARD_VOICE قيمة منطقية إضافية تشير إلى تفعيل Intent باستخدام الصوت من بطاقة مباشرة.
الشركات المصنِّعة العامة
LiveCard(سياق السياق وعلامة سلسلة)
الطرق العامة
بطاقة مباشرة
attach(خدمة الخدمة)
Surfaceholder
منطقي
لاغي
لاغي
بطاقة مباشرة
بطاقة مباشرة
setDirectRenderingEnabled(تفعيل منطقي)
بطاقة مباشرة
setRenderer(جهاز عرض GlRenderer)
بطاقة مباشرة
setViews (طرق عرض RemoteViews)
بطاقة مباشرة
setVoiceActionEnabled(تفعيل منطقي)
لاغي
الطرق المكتسبة

الثوابت

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE21

علنية ثابتة نهائية سلسلة EXTRA_FROM_LIVECARD_VOICE

قيمة منطقية إضافية تشير إلى تفعيل Intent باستخدام الصوت من بطاقة مباشرة.

القيمة الثابتة: "android.intent.extra.EXTRA_FROM_LIVECARD"

الشركات المصنِّعة العامة

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE16

public LiveCard (سياقالسياق، علامة String)

ينشئ بطاقة مباشرة مع العلامة المعيّنة.

لاحظ أن البطاقة لا تظهر إلا بعد نشرها بشكل صريح.

المعلَمات
سياق سياق التطبيق
العلامة علامة غير فارغة للبطاقة؛ وذلك لأغراض تصحيح الأخطاء

الطرق العامة

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE16

public LiveCard إرفاق (خدمة الخدمة)

أرفق خلفية Service بحيث يتم نشر الخدمة المحدّدة في المقدمة عند نشر هذه البطاقة.

وستتم إزالة الخدمة تلقائيًا من المقدّمة عند إلغاء نشر هذه البطاقة المباشرة.

المعلَمات
الخدمة سيتم تعيينه ليتم عرضه في المقدمة
المرتجعات
  • هذا الكائن لتسلسل المكالمات
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public Surfaceholder getSurfaceholder ()

عند تفعيل العرض المباشر، يتم منح إذن الوصول إلى Surface للرسم عليه.

يُرجى العِلم أنّه يجب استخدام السمة SurfaceHolder التي تم إرجاعها كوسيلة للوصول إلى السطح المُدار. طرق تغيير الشكل ونوع السطح هي عمليات مستقلة.

لاحظ أيضًا أن استدعاءات هذا الكائن لا يتم إجراؤها في سلسلة واجهة المستخدم.

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public قيمة منطقية isPublished ()

لعرض true إذا كانت البطاقة منشورة حاليًا.

تمت الإضافة في مستوى واجهة برمجة التطبيقات XE16

public void التنقل ()

لإرسال المستخدم إلى هذه البطاقة في المخطط الزمني.

الرميات
LegalStateException إذا لم يتم نشر البطاقة
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public void publish (LiveCard.PublishMode)

لنشر هذه البطاقة في المخطط الزمني.

لن يتم عرض البطاقة إلا إذا كانت تحتوي على إجراء، وفي حال تفعيل العرض المباشر أو ضبط عروض عن بُعد.

المعلَمات
الوضع تحديد كيفية عرض البطاقة للمستخدم
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public LiveCard setAction (PendingIntent intent)

لتغيير الإجراء الذي يتم اتخاذه عند تحديد البطاقة.

المعلَمات
intent سيتم تنشيطها عند تحديد البطاقة
المرتجعات
  • هذا الكائن لتسلسل المكالمات
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public LiveCard setDirectRenderingEnabled (تفعيل منطقي)

لتفعيل العرض المباشر.

في هذا الوضع، يجب عرض محتوى البطاقة مباشرة في Surface.

ملاحظة: لا يمكن استدعاء هذه الطريقة إلا عند عدم نشر البطاقة، ما يؤدي إلى استثناء.

المعلَمات
تفعيل لتحديد ما إذا كان يجب تمكين العرض المباشر أم لا
المرتجعات
  • هذا الكائن لتسلسل المكالمات
انظر أيضًا
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE16

public LiveCard setRenderer (عارض GlRenderer)

لإضافة عارض مستند إلى OpenGL.

سيتم استخدام العارض للرسم على سطح مطلوب (تلقائيًا) للعرض المباشر.

المرتجعات
  • هذا الكائن لتسلسل المكالمات
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public LiveCard setViews (مشاهدة المشاهدات عن بُعد)

لتغيير RemoteViews المستخدمة لعرض واجهة المستخدم لهذه البطاقة.

يجب استدعاء هذه الطريقة أيضًا بعد إجراء أي تغييرات مباشرة على طرق العرض عن بُعد لبطاقة منشورة، وإلا فلن تظهر تلك التغييرات في المخطط الزمني.

ليس لهذه الطريقة أي تأثير في حالة تمكين العرض المباشر.

المعلَمات
مشاهدة واجهة مستخدم البطاقة
المرتجعات
  • هذا الكائن لتسلسل المكالمات
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE21

public LiveCard setVoiceActionEnabled (تفعيل منطقي)

تفعيل إجراء صوتي عند عرض البطاقة في المخطط الزمني.

عند ضبط هذه العبارة، تستمع البطاقة إلى عبارة "OK Glass" عند عرضها على المخطط الزمني، وعندما تنطق هذه العبارة المشددة، تُنشِّط الهدف الذي تم ضبطه من خلال طريقة setAction(PendingIntent). في حال بدء الهدف من تنفيذ نشاط يستخدم قوائم صوتية سياقية، سيتم فتح النشاط تلقائيًا على عناصر القائمة الأولى (أي كما لو تم قول "OK Glass" داخل النشاط نفسه). تتيح هذه الميزة تنفيذ قوائم صوتية سياقية على البطاقات المباشرة.

المعلَمات
تفعيل ما إذا كان يجب تفعيل الإجراء الصوتي
المرتجعات
  • هذا الكائن لتسلسل المكالمات
انظر أيضًا
تمت الإضافة في مستوى واجهة برمجة التطبيقات XE12

public void إلغاء النشر ()

إلغاء نشر هذه البطاقة من المخطط الزمني.