বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি ইমপ্লিসিট ইনটেন্ট তৈরী করা

ইমপ্লিসিট ইনটেন্ট শুরু করতে কম্পোনেন্ট এর ক্লাস নেম ডিক্লেয়ার করে না কিন্তু পরিবর্তে সম্পাদন করতে একটি একশন ডিক্লেয়ার করে। একশনটি যে বিষয়গুলো আপনি করতে চান তা নির্দিষ্ট করে, যেমন, কোন কিছু ভিউ, এডিট, সেন্ড, গেট ইত্যাদী। ইনটেন্ট মাঝে মাঝে একশনের সাথে সম্পৃক্ত ডাটা অন্তর্ভূক্ত করে, যেমন ঠিকানাটি যা আপনি দেখতে চান অথবা ইমেইল মেসেজ যা আপনি সেন্ড করতে চান। আপনি কী ধরনের ইনটেন্ট তৈরী করতে চান তার উপর নির্ভর করে, ডাটা একটি Uri হতে পারে, অন্য আরও ডাটার একটি অথবা ইনটেন্টের আদৌ ডাটার দরকার নেই।

আপনার ডাটা যদি Uri হয়, একটা সরল Intent()আছে যা আপনি একশন এবং ডাটা নির্ধারন করতে ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, এখানে দেখানো হয়েছে টেলিফোন নাম্বার সুনির্দিষ্ট করতে Uri ডাটা ব্যবহার করে একটা ফোন কল আরম্ভ করতে কীভাবে একটি ইনটেন্ট তৈরী করতে হয়:

Uri number = Uri.parse("tel:5551234");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);

যখন আপনার অ্যাপ startActivity()কল করে এই ইনটেন্টকে আবাহন করে, ফোন অ্যপটি প্রদত্ত ফোন নাম্বারে একটি কল করে।

এখানে আছে একজোড়া অন্য ইনটেন্ট এবং তাদের একশন এবং Uri ডাটার জোড়া:

  • View a map:/ ম্যাপ ভিউ একটি:

    // Map point based on address Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"); // Or map point based on latitude/longitude // Uri location = Uri.parse("geo:37.422219,-122.08364?z=14"); // z param is zoom level Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);

  • View a web page:/ ওয়েব পেজ ভিউ:

Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);

ইমপ্লিসিট ইনটেন্টের অন্য ধরনে “এক্সট্রা” ডাটার প্রয়োজন যা ভিন্ন ডাটা টাউপস প্রদান করে, যেমন একটি স্ট্রিং। আপনি নানা ধরনের putExtra()মেথড ব্যবহার করে এক্সট্রা ডাটার এক বা একাধিক অংশ সংযুক্ত করতে পারেন।

বাই ডিফল্ট, সিস্টেমটি Uri ডাটা যা অন্তর্ভূক্ত আছে তার উপর ভিত্তি করে ইনটেন্ট কর্তৃক চাওয়া যথাযথ MIME টাইপটি নির্ধারন করে। যদি আপনি একটি Uri ইনটেন্টে অন্তর্ভূক্ত না করনে, স্বাভাবিকভাবে ইনটেন্টের সাথে সম্পৃক্ত ডাটার টাইপ সুনির্দিষ্ট করতে আপনার উচিত setType()ব্যবহার করা। MIME টাইপটি সেটিং করে আরও সুনির্দিষ্টি করার এই ধরনের একটিভিটিগুলোর ইনটেন্ট গ্রহণ করা উচিত।

এখানে আরও কিছু ইনটেন্ট আছে যা কাঙ্খিত একশন সুনির্দিষ্ট করতে এক্সট্রা ডাটা এড করে:

  • এটাচমেন্টসহ একটা ইমেইল পাঠান:
Intent emailIntent = new Intent(Intent.ACTION_SEND);
// The intent does not have a URI, so declare the "text/plain" MIME type
emailIntent.setType(HTTP.PLAIN_TEXT_TYPE);
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); // recipients
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message text");
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://path/to/email/attachment"));
// You can also attach multiple items by passing an ArrayList of Uris
  • একটি ক্যালেন্ডার ইভেন্ট তৈরী করুন:
Intent calendarIntent = new Intent(Intent.ACTION_INSERT, Events.CONTENT_URI);
Calendar beginTime = Calendar.getInstance().set(2012, 0, 19, 7, 30);
Calendar endTime = Calendar.getInstance().set(2012, 0, 19, 10, 30);
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis());
calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis());
calendarIntent.putExtra(Events.TITLE, "Ninja class");
calendarIntent.putExtra(Events.EVENT_LOCATION, "Secret dojo");

নোট: ক্যালান্ডার ইভেন্টের জন্য এই ইনটেন্ট শুধুমাত্র এপিআই লেভেল ১৪ এবং এর চেয়ে উপরের লেভেল সাপোর্ট করে।

নোট: এটা গুরুত্বপূর্ণ যে আপনি যতটুকু সুনির্দিষ্ট করা সম্ভব ঠিক সেভাবে আপনার Intentনির্ধারন করেছেন। উদাহরণস্বরূপ, যদি আপনি ACTION VIEW ইনটেন্ট ব্যবহার করে একটি ইমেজ প্রদর্শন করতে চান, আপনার image/*এর একটি MIME টাইপ সুনির্দিষ্ট করা উচিত। এটা অ্যাপস পরিহার করে যা ইনটেন্ট কর্তৃক শুরু হওয়া থেকে অন্য ধরনের ডাটা (যেমন একটি ম্যাপ) কে “ভিউ” করতে পারে।