
آموزش کار کردن با Intent ها در اندورید
آموزش کار کردن با Intent ها در اندورید یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی، آموزش کار کردن باIntent ها در اپلیکیشن های اندورید است که با نام اصلی Android Fundamentals - Intents شرکت Pluralsight منتشر شده است.
انواع Intent ها در سیستم عامل اندروید
در سیستم عامل اندروید از intent ها برای برقراری ارتباط بین کامپوننت های موجود در یک اپلیکیشن یکسان و یا سایر اپلیکیشن ها استفاده می شود. امکان تعریف کردن intent ها به دو روش explicit یعنی صریح و implicit یعنی ضمنی وجود دارد. در تعریف کردن intent های explicit می بایست کامپوننت دریافت کننده را صراحتاً مشخص کرده و بدین ترتیب، سیستم عامل اندروید، آن intent را به طور مستقیم به کامپوننت تعریف شده ارسال می کند. این در حالی است که تعریف کردن intent های ضمنی و یا implicit از سیستم عامل اندروید کمک می گیریم تا لیستی از کامپوننت هایی که می توانند آن intent را دریافت کنند را به ما نشان بدهد. این موضوع در یک پنجره ChooserDialog اتفاق می افتد. سپس کاربر می تواند از لیست کامپوننت های ریجستر شده یک مورد را به عنوان کامپوننت هدف انتخاب کرده تا سیستم عامل اندروید intent مورد نظر را به آن کامپوننت ارسال کند.
علاوه بر این موضوع می توانید در intent ها داده هایی را نیز قرار بدهید تا آن داده ها توسط کامپوننت دریافت کننده مصرف بشوند. برای انجام این کار می توانید از شی باندل استفاده کنید. با استفاده کردن از باندل می توانید داده های مورد نظر خود را به همراه intent به یک کامپوننت دریافت کننده ارسال کنید. ضمناً خود شی intent نیز متد هایی را ارائه می دهد که با استفاده از آنها می توانید داده هایی را در intent مورد نظر قرار بدهید. با استفاده کردن از این متد ها نیز در پشت پرده از یک شی باندل استفاده خواهد شد. از اشیاء intent به طور معمول در کنار متد StartActivity() برای اجرا کردن یک activity و یا یک BroadActReciver() استفاده می شود. در قسمت زیر نحوه تعریف کردن یک explicit intent و سپس ارسال کردن آن به سیستم عامل اندروید به منظور اجرا کردن یک activity نشان داده شده است.

ضمناً همانطور که گفته شد در استفاده کردن از implicity intent ها سیستم عامل اندروید، لیستی از کامپوننت هایی که برای دریافت آن intent ریجستر شده اند را به ما نشان می دهد. کدی که در قسمت زیر مشاهده می کنید، نحوه استفاده کردن از intent ها برای نمایش داده شدن یک صفحه وب را نشان می دهد.
در چنین شرایطی تمامی مرورگر های وب که بر روی دستگاه نصب شده اند برای دریافت چنین implicit intent خاصی ریجستر گردیده اند. ضمناً این موضوع با استفاده کردن از intent filter ها انجام می پذیرد.
چگونه با Intent بین Activity های اندروید ارتباط برقرار کنیم؟
در توسعه اپلیکیشنهای اندروید، Activity یکی از اجزای اصلی رابط کاربری است و Intent میتواند برای درخواست اجرای یک Activity دیگر استفاده شود. هنگام آغاز یک Activity، برنامه میتواند اطلاعات لازم را در قالب دادههای همراه Intent ارسال کند تا صفحه مقصد بتواند بر اساس آنها رفتار مناسبی داشته باشد. این قابلیت در سناریوهایی مانند باز کردن صفحه جزئیات یک محصول، نمایش اطلاعات یک کاربر یا انتقال از یک بخش برنامه به بخش دیگر کاربرد دارد.
برای استفاده صحیح از Intent باید مشخص باشد که Activity مقصد چگونه انتخاب میشود و چه دادههایی باید در اختیار آن قرار بگیرند. در Intentهای صریح، کامپوننت مقصد مشخص است و برنامه مستقیماً همان مقصد را درخواست میکند. در مقابل، هنگام استفاده از Intentهای ضمنی، سیستم اندروید میتواند بر اساس Action و قابلیتهای اعلامشده توسط اپلیکیشنها، گزینههای مناسب را پیدا کند. شناخت این سازوکارها به توسعهدهندگان کمک میکند جریان حرکت میان صفحهها را بهتر طراحی کنند.
استفاده از Intent برای اشتراکگذاری اطلاعات بین اپلیکیشنها
Intent تنها برای ارتباط میان اجزای یک اپلیکیشن کاربرد ندارد و میتواند راهی برای درخواست انجام عملیات توسط اپلیکیشنهای دیگر نیز باشد. برای مثال، برنامهای که متنی تولید کرده است میتواند از سیستم اندروید بخواهد اپلیکیشن مناسبی را برای اشتراکگذاری آن در اختیار کاربر قرار دهد. در چنین شرایطی، برنامه مبدأ لازم نیست تمام قابلیتهای مورد نیاز را خودش پیادهسازی کند و میتواند از امکانات موجود در دستگاه بهره ببرد.

برای تعریف چنین تعاملاتی، Action و دادههای همراه Intent نقش مهمی دارند. سیستم اندروید با بررسی درخواست و قابلیتهای اعلامشده توسط اپلیکیشنهای نصبشده، میتواند مقصدهای سازگار را شناسایی کند. بااینحال، موفقیت عملیات به وجود اپلیکیشن مناسب و سازگاری آن با درخواست وابسته است. هنگام طراحی این قابلیتها باید حالتهایی مانند نبودن مقصد مناسب یا رد شدن درخواست نیز در نظر گرفته شوند تا تجربه کاربر در شرایط مختلف قابل پیشبینی باقی بماند.
دریافت و پردازش Intent های ورودی در اندروید
یک اپلیکیشن اندروید میتواند برای دریافت درخواستهایی از سایر اپلیکیشنها آماده شود. این قابلیت امکان میدهد کاربر از یک برنامه دیگر، محتوایی را به اپلیکیشن مورد نظر منتقل کند یا عملیاتی را در آن آغاز کند. برای مثال، یک برنامه مدیریت محتوا ممکن است از طریق Intent ورودی، متنی را دریافت کند که کاربر قصد دارد آن را ذخیره یا ویرایش کند. این نوع تعامل باعث میشود اپلیکیشنها بتوانند در چارچوب قابلیتهای سیستم با یکدیگر همکاری کنند.
در پیادهسازی دریافت Intent باید علاوه بر تنظیم صحیح مقصد، دادههای ورودی نیز بررسی شوند. محتوای دریافتی ممکن است ناقص، نامعتبر یا متفاوت از چیزی باشد که برنامه انتظار دارد؛ بنابراین، اعتبارسنجی ورودیها و مدیریت حالتهای غیرمنتظره اهمیت دارد. همچنین باید به مجوزهای دسترسی و محدودیتهای امنیتی اندروید توجه کرد. طراحی مناسب این بخش به توسعهدهندگان کمک میکند قابلیت تعامل با اپلیکیشنهای دیگر را بدون ایجاد رفتارهای نامطمئن به برنامه اضافه کنند.
سرفصل مطالب آموزش ویدئویی کار کردن با Intent ها در اندورید
فصل اول: مقدمه دوره آموزشی- مقدمه دوره آموزشی
- بررسی اجمالی
- مقدمه
- ایجاد کردن Activity دوم
- ارسال کردن پارامترها با استفاده از Extra ها
- برگرداندن نتایج به Activity اول
- جمع بندی
- مقدمه
- استفاده کردن از ACTION_VIEW برای آغاز کردن Browser و باز کردن Google Maps
- استفاده کردن از ACTION_DIAL برای آغاز کردن Phone Dialer
- استفاده کردن از ACTION_GET_CONTENT برای بازیابی کردن یک عکس از گالری کاربر
- استفاده کردن از ACTION_SEND برای به اشتراک گذاشتن یک متن و عکس
- Handle کردن شرایطی که هیچ Activity خاصی برای Intent ایجاد شده وجود ندارد
- جمع بندی
- مقدمه
- استفاده کردن از ACTION_VIEW برای پذیرفتن یک Link
- استفاده کردن از ACTION_VIEW برای پذیرفتن داده های غیر Link
- استفاده کردن از ACTION_SEND برای دریافت کردن متن های به اشتراک گذاشته شده
- تعریف کردن یک Action سفارشی
- ارسال کردن یک Implicit Intent با استفاده از ADB
- جمع بندی







