Intents و Filters در اندروید
Intents و Filters در اندروید
آموزش ویدیویی این قسمت با زبان فارسی و کیفیت بالا اضافه شد میتوانید جهت تسریع در عمل یادگیری خود خرید کنید و تماشا کنید
یک Intent در اندروید ، توصیف انتزاعی ، انجام یک عمل در اندروید هست ! بطور ساده ، شما میتوانید اکتیوتی جدیدی را توسط startActivity اجرا کنید ، از broadcastIntent استفاده کنید تا بتوانید آنرا به هر یک از اجزا BroadcastReceiver ارسال کنید ، startService(Intent) یا bindService(Intent, ServiceConnection, int) برای انجام یک پردازش در پس زمینه ی صفحه ی نمایش استفاده کنید !
Intent به تنهایی یا شی اینتنت در اندروید ب تنهایی ساختار غیر فعالی از اطلاعات هست که برای انجام یک عمل استفاده میشود .
برای نمونه ، بیایید فرض کنیم یک اکیتیویتی داریم که قرار هست یک برنامه ی ایمیل را اجرا کند که توسط آن ایمیلی نیز ارسال شود . برای این هدف ، برنامه ی شما باید اکشنی با نام ACTION_SEND را همراه با انتخابی مناسب، برای انتخاب کننده ی اینتنت اندروید، ارسال کند
در این حالت کادری باز میشود و تمام راه های ممکن ارسال ایمیل برای کاربر نمایش داده میشود که بسته به نیاز خود یکی از راهها را انتخاب کند
Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); email.putExtra(Intent.EXTRA_EMAIL, recipients); email.putExtra(Intent.EXTRA_SUBJECT, subject.getText().toString()); email.putExtra(Intent.EXTRA_TEXT, body.getText().toString()); startActivity(Intent.createChooser(email, "Choose an email client from..."));
کد بالا را اگر اجرا بکنید متد startActivity ، فراخوانی میشود و دنبال یک اکتیویتی مناسب برای ارسال ایمیل میگردد و کادری مشابه تصویر زیر برای شما باز میشود :

ارسال ایمیل در اندروید
برای مثال فرض کنید که شما یک لینک دارید و قرار هست این لینک در اندروید ، توسط مرورگر وب به نمایش گذاشته شود ، برای این هدف ، اکتیویتی شما اینتنتی با نام ACTION_WEB_SEARCH صادر خواهد این اینتنت به اندروید شما معرفی خواهد شد و تمام برنامه هایی که قابلیت فراخوانی یک لینک اینترنتی را دارند لیست خواهند شد .
ممکن هست یک url توسط برنامه های دیگری نیز اجرا شود ولی هدف ما در این مثال استفاده از مرورگر وب هست که در اندروید وجود دارد ،
کدهای زیر را ببینید :
String q = "Samenta"; Intent intent = new Intent(Intent.ACTION_WEB_SEARCH ); intent.putExtra(SearchManager.QUERY, q); startActivity(intent);
کدهای بالا همانطور که مشخص هست کلمه ی samenta را جستجو خواهد کرد این کار توسط موتور جستجوی اندروید انجام شده و نتیجه برای آن نمایش داده خواهد شد
مکانیسم جداگانه ای ، برای تحویل اینتنت ها به کامپوننت ها – اکتیویتی ها ، سرویس ها و برودکست رسیور ها وجود دارد :
ردیف | متد و توضیحات آن |
۱ | Context.startActivity() شی اینتنتی که به این متد پاس خواهد شد جهت راه اندازی اکتیویتی جدید ، یا دریافت اکتیویتی در حال اجرا جهت انجام عملیات روی آن هست |
۲ | Context.startService() شی اینتنت که به این متد فرستاده میشود جهت کار با سرویس ها هست ، راه اندازی سرویس جدید یا عملیات روی سرویسی که وجود دارد |
۳ | Context.sendBroadcast() اینتت ارسالی به این متد نیز مخصوص کار با تامین کننده ی محتواها خواهد بود جهت انتشار پیغامی برای هر Broadcast Reciver که دلتان بخواهد |
Intent Objects در اندروید :
Intent Object بسته ای از اطلاعات هست که توسط کامپوننت های اندرویدی و همچنین سیستم اندروید دریافت و استفاده میشود .
هر اینتنت از اجزای زیر تشکیل شده است :
Action در اینتنت اندروید :
Action یکی از اجزای اجباری و مهم هر شی اینتنت هست که رشته ای از نام عملیات هست که باید انجام شود — یا در حالت اینتنت های BroadCast نام عملی هست که انجام گرفته است و گزارش آن ارسال شده است .
Action در اینتنت توسط setAction() تعریف میشود و با متد getAction() هم دریافت میشود .
Data در اینتنت اندروید :
مشخصات Data را به intent filter می افزاید ، این مشخصات میتواند تنها URI باشد ، یا تنها نوع داده ها باشد ، یا شامل هر دو مورد باشد . یک URI بوسیله ی جداسازی ویژگی های هر قسمت آن ، مشخص میشود :
ادامه دارد …

سلام واقعا عالی بود مرسی
سلام . خواهش میکنم