در این مقاله به اهمیت فیلتر ها و اینتنت ها میپردازیم.
فیلتر ها و اینتنت ها در اندروید
Android - Intents and Filters
یک Android Intent در واقع توضیح خلاصه ای از یک عملکرد برای انجام شدن است . Android Intent میتواند با startActivity برای اتصال به یک Activity مورد استفاده قرار گیرد و یا از broadcastIntent برای فرستادن هر کامپوننت مورد علاقه از interested BroadcastReceiver میتواند استفاده کند و با استفاده از startService(Intent) یا bindService(Intent, ServiceConnection, int) برای ارتباط با سرویس های پس زمینه ای استفاده می کند.
Intent در واقع : یک شیئ Intent یک ساختار داده منفعل است، که یک خلاصه ای از توضیح یک عملگر را برای اجرا، ارائه میدهد .
مثال: فرض کنید که شما یک Activity دارید. که نیاز به اتصال به ایمیل مشتریان دارد و همچنین برای ارسال ایمیل میخواهید از یک دستگاه اندرویدی استفاده کنید. برای این هدف ، Activity شما یک ACTION_SEND را با chooser مناسب ارسال میکند . این داده ها به Intent Resolver خواهد رسید، chooser مشخص شده به کاربر نمای گرافیکی مناسبی را برای انتخاب نحوه ارسال ایمیل ارائه خواهد داد.
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 را فراخوانی خواهد کرد ، که یک activity ایمیل را شروع می کند و نتیجه باید مثل تصویر زیر باشد:
برای مثال: شما یک Activity دارید که میخواهید یک URL را در یک مرورگر در دستگاه اندرویدی باز کند. برای این هدف Activity شما باید ACTION_WEB_SEARCH Intent را به Android Intent Resolver ارسال کند، تا URL را در مرورگر باز شود . در این حالت Intent Resolver در میان لیست Activities گشته و یکی از بهترین گزینه ها را از میان Intent ها انتخاب خواهد کرد . مثالا برای کاری که در این مثال میخواهیم انجام دهید. Activity برای مرورگر وب است . Intent پس از رفتن به صفحه وب Activity مرورگر وب را برای شما فعال خواهد کرد.
String q = "sargonco";
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH );
intent.putExtra(SearchManager.QUERY, q);
startActivity(intent);
مثال بالا عبارت sargonco را در موتور جستجوی اندروید جستجو می کند و نتایج یافت شده از sargoco را از طریق یک activity در اختیارتان قرار خواهد داد .
مکانیزم های مختلفی برای بازگردانی intents ها برای هر نوع کاپوننت وجود دارد، که عبارتند از: activities, services, و broadcast receivers.
شماره
|
متد و توضیحات آن
|
1
|
Context.startActivity():
شیئ Intent از این متد برای اتصال به یک activity جدید و یا اتصال به یک activity موجود، برای انجام کار جدیدی استفاده می کند.
|
2
|
Context.startService():
شیئ Intent از این متد برای آغاز یک سرویس و یا ارسال یک ساختار به یک سرویس در حال اجرا استفاده می کند.
|
3
|
Context.sendBroadcast() :
شیئ Intent از این متد برای ارسال پیام به همه دریافت کننده های پخش یا broadcast receivers ها استفاده می کند.
|
شیئ Intent
یک شیئ Intent یک بسته از اطلاعات است که با کامپوننتی استفاده میشود که intent را مانند اطلاعات استفاده شده در سیستم اندروید دریافت می کند.
یک شیئ Intent میتواند، حاوی کامپوننت های معرفی شده در فهرست زیر باشد. این کامپوننت ها بر اساس ارتباطی که Intent باید ایجاد کند استفاده میشوند.
Action:
Action یک بخش اجباری از شیئ Intent است. Action ها رشته های با نام action هستند که قابلیت اجرا شدن دارند. Action ها ممکن است بخشی از مفاهیم پخش یا همان broadcast intents باشد، Action ها چیزی هستند که فضایی را اشغال کرده و یا در گزارشی حضور پیدا می کنند. اکشن ها تا حد زیادی تعیین کننده این هستند که شیئ intent در ادامه چه ساختاری را خواهد داشت. کلاس intent یک عدد از ثابتهای اکشن را در ارتباط با intents های مختلف تعریف می کند. در انتهای آموزش های اندروید لیستی از اکشن های استاندارد Android Intent را مشاهده خواهید کرد.
اکشن در یک شیئ Intent میتواند با متد setAction() تنظیم شود و با متد getAction() آماده فعالیت میشود..
Data:
خصوصیات داده را به یک فیلتر intent می افزاید . خصوصیات میتواند تنها شامل نوع داده (صفت mimeType ) ، فقط یک URI (Uniform Resource Identifier): رشته ای از حروف برای تعریف منابع .) یا هردو باشد. یعنی هم نوع داده و هم یک URI . یک URI توسط صفت های جداگانه ای برای هر یک از صفت هایش تعریف میشود.
این صفات که فرمت آدرس را مشخص می کنند اختیاری هستند ، اما همچنین بصورت متقابل بهم وابسته هستند.
- اگر یک طرح برای فیلتر intent مشخص نشده باشد . تمام URI های دیگر نیز نادیده گرفته میشوند.
· اگر یک هاست برای فیلتر تعریف نشده باشد. صفت پورت و همه صفت های مسیر ها نادیده گرفته خواند شد.
متد setData() داده ها را تنها بصورت URI تعریف می کند. setType() داده ها را تنها بصورت یک MIME type مشخص می کند. setDataAndType() داده ها را به هر دو صورت URI و MIME type مشخص و یا تعریف می کند. URI توسط getData() آماده فعالیت میشود و نوع آن توسط getType() مشخص میگردد.
مثالهایی از کارایی action/data
شماره
|
Action/Data Pair & Description
|
1
|
ACTION_VIEW content://contacts/people/1
نمایش اطلاعات درباره شخصی که شناسه یا id یک 1 را دریافت می کند
|
2
|
ACTION_DIAL content://contacts/people/1
نمایش شماره گیری تلفن با فیلد شخص درون آن
|
3
|
ACTION_VIEW tel:123
نمایش شمارگیری تلفن با فیلد شماره در آن .
|
4
|
ACTION_DIAL tel:123
نمایش شماره گیر تلفن با فیلد دریافت شماره تلفن در آن
|
5
|
ACTION_EDIT content://contacts/people/1
ویرایش اطلاعات درباره شخصی که شناسه آن عدد 1 باشد.
|
6
|
ACTION_VIEW content://contacts/people/
نمایش یک لیست از مردم ، که کاربران میتوانند در میان آنان جستجو کنند.
|
7
|
ACTION_SET_WALLPAPER
نمایش تنظیمات برای انتخاب wallpaper یا همان کاغذ دیواری
|
8
|
ACTION_SYNC
این یک هماهنگ کننده داده است . مقدار ثابت برابر با android.intent.action.SYNC است.
|
9
|
ACTION_SYSTEM_TUTORIAL
این اکشن یک پلتفرم تعریف شده از فایل آموزشی را اجرا می کند. (فایل آموزشی پیشفرض و یا فایل آموزشی شروع نرم افزار )
|
10
|
ACTION_TIMEZONE_CHANGED
هنگامی که منطقه زمانی تغییر کند اجرا خواهد شد.
|
11
|
ACTION_UNINSTALL_PACKAGE
این اکشن برای حذف برنامه پیشفرض استفاده میشود
|
شرکت برنامه نویسی سارگون اماده تولید نرم افزار اندرویدی برای کلیه صاحبان مشاغل بصورت تخصصی میباشد.