লাইভকার্ড
এই ক্লাসটি আপনাকে সক্রিয় কার্ড তৈরি করতে এবং টাইমলাইনে প্রকাশ করতে দেয়।
কীভাবে লাইভ কার্ড তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য, লাইভ কার্ড বিকাশকারী নির্দেশিকা দেখুন।
একটি লাইভ কার্ডের জীবন
লাইভ কার্ডগুলির প্রকাশের পুরো সময়ের জন্য তাদের মালিকানার জন্য একটি দীর্ঘ-চলমান প্রসঙ্গ প্রয়োজন, তাই আপনার সেগুলিকে একটি ব্যাকগ্রাউন্ড Service
পরিচালনা করা উচিত। তারপরে পরিষেবাটি শুরু হওয়ার সাথে সাথে বা পরিষেবাটি পর্যবেক্ষণ করে এমন অন্যান্য ইভেন্টগুলির প্রতিক্রিয়া হিসাবে আপনি একটি লাইভ কার্ড প্রকাশ করতে পারেন৷ একইভাবে, কার্ডগুলি আর প্রাসঙ্গিক না হলে বা পরিষেবাটি ধ্বংস হয়ে গেলে আপনার প্রকাশনা বাতিল করা উচিত।
আপনি যখন একটি লাইভ কার্ড প্রকাশ করেন, তখন এটি ব্যবহারকারীদের কীভাবে প্রভাবিত করে তা আপনি চয়ন করতে পারেন৷ নীরবে প্রকাশ করার সময়, কার্ডটি কোনো দৃশ্যমান প্রভাব ছাড়াই টাইমলাইনে ঢোকানো হবে: ব্যবহারকারীদের এটি দেখতে কার্ডে সোয়াইপ করতে হবে। আপনি লাইভ কার্ডটি প্রকাশের পরপরই স্বয়ংক্রিয়ভাবে প্রদর্শিত হতে পারেন। এটি প্রায়ই দরকারী যখন আপনার অ্যাপ্লিকেশনের প্রধান ব্যবহারকারী ইন্টারফেস একটি লাইভ কার্ড হয় এবং একটি কার্যকলাপ নয়।
একটি লাইভ কার্ডে সামগ্রী প্রদর্শন করা হচ্ছে
একটি লাইভ কার্ড একটি লেআউট সংস্থান থেকে বা আপনার কোডকে সরাসরি তার অঙ্কন পৃষ্ঠে রেন্ডার করার অনুমতি দিয়ে সামগ্রী প্রদর্শন করতে পারে। আপনার কার্ডে কত ঘন ঘন কন্টেন্ট আপডেট করতে হবে এবং আপনি যদি প্রাথমিকভাবে উইজেট বা ফ্রি-ফর্ম গ্রাফিক্স রেন্ডার করছেন তার উপর ভিত্তি করে আপনার অ্যাপ্লিকেশনের জন্য সবচেয়ে উপযুক্ত পদ্ধতিটি বেছে নিন।
দূরবর্তী দৃশ্য ব্যবহার করে একটি লেআউট স্ফীত করা
যদি আপনার অ্যাপ্লিকেশনের জন্য শুধুমাত্র স্ট্যান্ডার্ড উইজেট এবং বিরল আপডেটের প্রয়োজন হয় (রিফ্রেশের মধ্যে প্রায় কয়েক সেকেন্ড বা তার বেশি), তাহলে RemoteViews
ক্লাসের সাহায্যে আপনার কার্ড তৈরি করুন। RemoteViews
অবজেক্ট গ্লাস টাইমলাইন, যা আপনার নিজস্ব অ্যাপ্লিকেশন কোড থেকে একটি পৃথক প্রক্রিয়ায় চলে, আপনার তৈরি করা একটি লেআউটকে স্ফীত করতে দেয়।
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 | বুলিয়ান অতিরিক্ত যা একটি Intent বোঝায় একটি লাইভ কার্ড থেকে ভয়েস দ্বারা সক্রিয় করা হয়েছিল। |
পাবলিক কনস্ট্রাক্টর | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
পাবলিক পদ্ধতি | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
লাইভকার্ড | সংযুক্ত করুন ( সেবা পরিষেবা) | ||||||||||
সারফেস হোল্ডার | |||||||||||
বুলিয়ান | |||||||||||
অকার্যকর | নেভিগেট () | ||||||||||
অকার্যকর | প্রকাশ করুন ( LiveCard.PublishMode মোড) | ||||||||||
লাইভকার্ড | setAction ( পেন্ডিংইন্টেন্ট উদ্দেশ্য) | ||||||||||
লাইভকার্ড | setDirectRenderingEnabled (বুলিয়ান সক্ষম) | ||||||||||
লাইভকার্ড | সেট রেন্ডারার ( GlRenderer রেন্ডারার) | ||||||||||
লাইভকার্ড | |||||||||||
লাইভকার্ড | setVoiceActionEnabled (বুলিয়ান সক্ষম) | ||||||||||
অকার্যকর | অপ্রকাশিত () |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ধ্রুবক
পাবলিক কনস্ট্রাক্টর
পাবলিক পদ্ধতি
পাবলিক লাইভকার্ড সংযুক্তি ( পরিষেবা পরিষেবা)
একটি পটভূমি Service
সংযুক্ত করুন যাতে এই কার্ডটি প্রকাশিত হলে, প্রদত্ত পরিষেবাটি অগ্রভাগে চালানোর জন্য সেট করা হয়৷
এই লাইভ কার্ড অপ্রকাশিত হলে পরিষেবাটি স্বয়ংক্রিয়ভাবে অগ্রভাগ থেকে সরানো হবে।
পরামিতি
সেবা | পূর্বভূমিতে চালানোর জন্য সেট করা হবে |
---|
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
সর্বজনীন সারফেসহোল্ডার getSurfaceHolder ()
যখন সরাসরি রেন্ডারিং সক্ষম করা হয়, তখন আঁকতে হবে এমন Surface
অ্যাক্সেস দেয়।
উল্লেখ্য যে প্রত্যাবর্তিত SurfaceHolder
পরিচালিত পৃষ্ঠটি অ্যাক্সেস করার উপায় হিসাবে ব্যবহার করা উচিত। পৃষ্ঠের আকৃতি এবং ধরন পরিবর্তন করার পদ্ধতি নো-অপস।
এছাড়াও মনে রাখবেন যে এই বস্তুর জন্য কলব্যাকগুলি UI থ্রেডে তৈরি করা হয় না।
এছাড়াও দেখুন
পাবলিক বুলিয়ান প্রকাশিত হয়েছে ()
কার্ডটি বর্তমানে প্রকাশিত হলে true
ফেরত দেয়।
সর্বজনীন অকার্যকর নেভিগেট ()
টাইমলাইনে ব্যবহারকারীকে এই কার্ডে পাঠায়।
নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম | যদি কার্ড প্রকাশিত না হয় |
---|
সর্বজনীন শূন্য প্রকাশ ( LiveCard.PublishMode মোড)
এই কার্ডটি টাইমলাইনে প্রকাশ করে।
কার্ডটি শুধুমাত্র তখনই প্রদর্শিত হবে যদি এটিতে একটি অ্যাকশন থাকে এবং যদি সরাসরি রেন্ডারিং সক্ষম করা থাকে বা দূরবর্তী দৃশ্য সেট করা থাকে।
পরামিতি
মোড | ব্যবহারকারীর কাছে কার্ডটি কীভাবে উপস্থাপন করা হবে তা নির্ধারণ করে |
---|
পাবলিক লাইভকার্ড সেটঅ্যাকশন ( পেন্ডিংইন্টেন্ট ইন্টেন্ট)
কার্ড নির্বাচন করা হলে গৃহীত পদক্ষেপ পরিবর্তন করে।
পরামিতি
অভিপ্রায় | কার্ড নির্বাচন করা হলে বহিস্কার করা হবে |
---|
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
পাবলিক লাইভকার্ড সেট ডাইরেক্ট রেন্ডারিং সক্ষম (বুলিয়ান সক্ষম)
সরাসরি রেন্ডারিং সক্ষম করে।
এই মোডে, কার্ডের বিষয়বস্তু সরাসরি একটি Surface
রেন্ডার করতে হবে।
মনে রাখবেন যে এই পদ্ধতিটি শুধুমাত্র তখনই বলা যেতে পারে যখন কার্ডটি প্রকাশ করা হয় না এবং অন্যথায় একটি ব্যতিক্রম নিক্ষেপ করবে।
পরামিতি
সক্ষম | সরাসরি রেন্ডারিং সক্ষম করা উচিত কিনা |
---|
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
এছাড়াও দেখুন
পাবলিক লাইভকার্ড সেট রেন্ডারার ( GlRenderer রেন্ডারার)
একটি OpenGL-ভিত্তিক রেন্ডারার যোগ করে।
রেন্ডারার সরাসরি রেন্ডারিংয়ের জন্য অনুরোধ করা (স্বয়ংক্রিয়ভাবে) একটি পৃষ্ঠের উপর আঁকার জন্য ব্যবহার করা হবে।
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
সর্বজনীন লাইভকার্ড সেট ভিউ ( রিমোট ভিউ ভিউ)
এই কার্ডের UI প্রদর্শন করতে ব্যবহৃত RemoteViews
পরিবর্তন করে।
একটি প্রকাশিত কার্ডের রিমোট ভিউতে সরাসরি কোনো পরিবর্তন করার পরেও এই পদ্ধতিটি কল করা উচিত, অথবা সেই পরিবর্তনগুলি টাইমলাইনে প্রতিফলিত হবে না।
সরাসরি রেন্ডারিং সক্ষম হলে এই পদ্ধতির কোন প্রভাব নেই।
পরামিতি
ভিউ | কার্ডের UI |
---|
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
এছাড়াও দেখুন
সর্বজনীন লাইভকার্ড সেটভয়েস অ্যাকশন সক্ষম (বুলিয়ান সক্ষম)
টাইমলাইনে কার্ড দেখানো হলে একটি ভয়েস অ্যাকশন সক্ষম করে।
সেট করা হলে, টাইমলাইনে দেখানো হলে কার্ডটি "ওকে গ্লাস" শোনে এবং, যখন এই গার্ড বাক্যাংশটি উচ্চারিত হয়, তখন setAction(PendingIntent)
পদ্ধতি দ্বারা সেট করা অভিপ্রায়কে ফায়ার করে। যদি অভিপ্রায় একটি ক্রিয়াকলাপ শুরু করে যা প্রাসঙ্গিক ভয়েস মেনুগুলি প্রয়োগ করে, কার্যকলাপটি স্বয়ংক্রিয়ভাবে প্রথম মেনু আইটেমগুলিতে খুলবে (যেমন "ঠিক গ্লাস" কার্যকলাপের ভিতরেই বলা হয়েছিল)। এই বৈশিষ্ট্যটি লাইভ কার্ডে প্রাসঙ্গিক ভয়েস মেনু প্রয়োগ করতে সক্ষম করে।
পরামিতি
সক্ষম | ভয়েস অ্যাকশন চালু করা উচিত কিনা |
---|
রিটার্নস
- কল চেইনিং জন্য এই বস্তু
এছাড়াও দেখুন
সর্বজনীন শূন্যতা অপ্রকাশিত ()
টাইমলাইন থেকে এই কার্ডটি অপ্রকাশিত করে।