برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

برنامه نویسی اندروید - دانشگاه صنعتی قم

این وبلاگ کانال ارتباطی با دانشجویان درس«برنامه نویسی موبایل» دانشگاه صنعتی قم می باشد.

محتویات این وبلاگ با هدف آموزش اندروید در دوره درسی "برنامه نویسی موبایل" در دانشگاه صنعتی قم توسط اینجانب گردآوری شده است.
تعداد زیادی از مطالب ترجمه شده در این وبلاگ توسط دانشجویان دانشگاه صنعتی قم به عنوان پروژه های این درس ترجمه شده است.
در صورتی که تصمیم به تماس با من دارید، می توانید از طریق آدرس ایمیل qut دات android در جی میل دات کام با من تماس بگیرید.
-------------------
اگر بتوانم به شما کمکی در زمینه برنامه نویسی اندروید بکنم، خوشحال خواهم شد با این حال اگر پرسشی را ارسال کردید و بنده نیز به دلیل مشکلات و مشغله نتوانستم پاسخگو باشم، پوزش بنده را پیشاپیش پذیرا باشید.
-------------------
چون افراد زیادی از من درخواست می کنند تا برنامه نویسان اندروید به خصوص در شهر قم را به آنها معرفی کنند، اگر تمایل دارید رزومه و یا مشخصات خود را برایم ارسال کنید تا در صورت وجود درخواستهایی از این دست به شما اطلاع دهم.
از نظر من محدویتی به شهر قم وجود ندارد، لذا اگر برنامه نویس اندروید در شهرهایی دیگر هستید و یا به دنبال نیروی برنامه نویس اندروید هستید با من در تماس باشید، شاید بتوانم در این زمینه به شما کمکی بکنم :)
ناگفته نماند از آنجایی که در فضای مجازی من شناختی از هیچ شخص یا شرکتی ندارم، اگر شخصی به دنبال نیروی کار باشد، به افرادی که با مشخصات درخواستی ایشان تطابق داشته باشند، اطلاع خواهم داد و توصیه می شود برنامه نویسان محترم نیز قبل از شروع به همکاری، ملاحظات لازم در این زمینه را به عمل آورند چون من نیز شناختی از طرف مقابل ندارم.

طبقه بندی موضوعی

مترجم: الهه اشجعی

آدرس: http://developer.android.com/training/basics/intents/filters.html

دو درس قبلی در یک طرف داستان متمرکز شده است: شروع activity های برنامه دیگر از برنامه شما. اما اگر برنامه شما می تواند عملی را که ممکن است برای یکی دیگر از برنامه ها مفید است را انجام دهد، برنامه شما باید برای پاسخ به درخواست از برنامه های دیگر آماده باشد. برای مثال، اگر شما یک برنامه اجتماعی که می تواند پیام ها و یا عکس ها را با دوستان کاربر به اشتراک بگذارد بسازید، برای حمایت از مفهوم ACTION_SEND یکی از علاقه مندی های شماست که کاربران می توانند یک "بخش" از برنامه دیگر را راه اندازی کنند و برنامه خود را برای عملیاتی کردن اجرا کنید.
برای اجازه دادن به برنامه های دیگر برای شروع activity شما، نیاز به اضافه کردن یک عنصر در فایل مانیفست خود برای عنصر مربوطه می باشد. هنگامی که نرم افزار شما بر روی یک دستگاه نصب می شود، سیستم فیلتر هدف شما را شناسایی و اطلاعات را به کاتالوگ داخلی مفاهیم پشتیبانی شده توسط تمام برنامه های نصب شده اضافه می کند.
هنگامی که یک برنامه startActivity() و یا startActivityForResult() با هدف ضمنی فراخوانی می شود، سیستم activity (یا activity هایی) که می توانند به هدف پاسخ دهند را پیدا می کند.
اضافه کردن فیلتر مفهومی
به منظور درستی تعریف از اینکه activity های شما کدام مفاهیم را می تواند اداره کند، هر فیلتر هدفی که شما اضافه می کنید باید از نظر نوع عمل و داده هایی که با عنوان خاص فعالیت می کنند، امکان پذیر باشد.
این سیستم ممکن است قصد داده شده را به یک activity بفرستد، در صورتی که activity دارای یک فیلتر مفهوم باشد، معیارهای زیر مفهوم را برآورده می سازد:
Activity
رشته نامگذاری شده برای انجام عملیات. معمولا یکی از مقادیر پلت فرم های تعریف شده مانند ACTION_SEND یا ACTION_VIEW می باشد.
اطلاعات
شرح اطلاعات مرتبط با هدف.
این را در فیلتر مفهوم خود با عنصر مشخص کنید. با استفاده از یک یا چند ویژگی در این عنصر، شما می توانید فقط نوع MIME، فقط یک پیشوند URI، فقط یک طرح URI، و یا ترکیبی از این و دیگران که نوع داده مورد قبول را نشان می دهد، تعیین کنید.
توجه: اگر شما نیازی به اعلام جزئیات در مورد داده Uri ندارید(مانند زمانی که activity های خود را دسته به نوع دیگری از داده های" اضافی"، به جای یک URI)، شما باید تنها اندروید را مشخص کنید:صفت خاصه mimeType برای اعلان نوع داده هایی که activity های شما را اداره می کند، از جمله متن / ساده و یا تصویر / JPEG.
دسته بندی
ارائه یک روش اضافی برای مشخص کردن activity های دست یابی به هدف، معمولا به ژست کاربر و یا مکانی که از آن آغاز شده مرتبط است. چندین دسته مختلف پشتیبانی شده توسط سیستم وجود دارد، اما اغلب آنها به ندرت استفاده می شود. با این حال، تمام مفاهیم ضمنی با CATEGORY_DEFAULT به طور پیش فرض تعریف شده است.
این مساله را در فیلتر مفهوم خود با عنصر مشخص کنید.
در فیلتر مفهوم خود، می توانید اعلام کنید که activity های شما چه معیاری را با اعلام هر یک از آنها با عناصر XML مربوطه تو در تو در عنصر می پذیرد. به عنوان مثال، در اینجا یک activity با یک فیلتر مفهوم که مفهوم ACTION_SEND را زمانی که نوع داده یا متن یا یک تصویر است را مدیریت می کند:

< activity android:name="ShareActivity">
< intent-filter>
< action android:name="android.intent.action.SEND"/>
< category android:name="android.intent.category.DEFAULT"/>
< data android:mimeType="text/plain"/>
< data android:mimeType="image/*"/>
< /intent-filter>
< /activity>

هر مفهوم ورودی تنها یک عمل و یک نوع داده را مشخص می کند، اما آن برای اعلان چندین نمونه از یک ، و عناصر در هر مشکلی ندارد.
اگر هر دو جفت از عمل و داده ها در رفتارهای خود متقابلا منحصر به فرد باشند، شما باید فیلتر مفهوم جداگانه ایجاد کنید تا مشخص باشد که کدام اقدامات زمانی با انواع داده های زوج قابل قبول است.
به عنوان مثال، فرض کنید activity های شما هر دو دسته متن و تصاویر را برای هر دو ACTION_SEND و مفاهیم ACTION_SENDTO مدیریت می کند. در این مورد، شما باید دو فیلتر مفهوم جداگانه را برای دو عمل تعریف کنید چرا که یک ACTION_SENDTO باید از داده های UrI برای شناسایی آدرس گیرنده با استفاده از ارسال و یا طرح URI sendto استفاده کند.برای مثال:

< activity android:name="ShareActivity">

< intent-filter> < action android:name="android.intent.action.SENDTO"/>
< category android:name="android.intent.category.DEFAULT"/>
< data android:scheme="sms" />
< data android:scheme="smsto" />
< /intent-filter>

< intent-filter>
< action android:name="android.intent.action.SEND"/>
< category android:name="android.intent.category.DEFAULT"/>
< data android:mimeType="image/*"/>
< data android:mimeType="text/plain"/>
< /intent-filter>
< /activity>

توجه: به منظور دریافت مفاهیم ضمنی، شما باید دسته CATEGORY_DEFAULT را در فیلتر مفهوم اضافه کنید. روش startActivity() و startActivityForResult() چنانچه تمام مفاهیم به عنوان دسته آنها CATEGORY_DEFAULT اعلام شده باشد، اینگونه رفتار می کند. اگر شما آن را در فیلتر مفهوم خود اعلام نکنید، هیچ مفهوم ضمنی ای activity های دوباره شما را حل نخواهد کرد.
جهت کسب اطلاعات بیشتر در مورد ارسال و دریافت مفاهیم ACTION_SEND که انجام رفتارهای اجتماعی به اشتراک می گذارد، فصل در مورد دریافت اطلاعات ساده از دیگر نرم افزارها را مشاهده کنید.
بکار بردن مفهوم در activity شما
به منظور تصمیم گیری در باره ایکه چه اقداماتی را در activity های خود بکار ببرید، شما می توانید از مفهومی که در شروع آن مورد استفاده قرار گرفت را بخوانید.
هنگامی که activity های شما آغاز می شود،() getIntent را برای بازیابی مفهومی که activity را آغاز کرده است، فراخوانی کنید. شما می توانید در هر زمان در طول چرخه عمر activity را انجام دهید، اما شما به طور کلی باید این کار را در طول تماس مجدد زودهنگام فرم هایی نظیر OnCreate() و یا onStart() انجام دهید.
برای مثال:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the intent that started this activity
Intent intent = getIntent();
Uri data = intent.getData();
// Figure out what to do based on the intent type
if (intent.getType().indexOf("image/") != -1) {
// Handle intents with image data ...
} else if (intent.getType().equals("text/plain")) {
// Handle intents with text ...
}
}

بازگرداندن نتیجه
اگر می خواهید نتیجه را به استناد خود به activity بازگردانید، به سادگی می توانید setResult() را برای تعیین نتیجه و در نتیجه مفهوم فراخوانی کنید. هنگامی که عملیات شما انجام می شود و کاربر باید به activity های اصلی بازگردد، finish() را برای بستن (و نابود کردن) activity های خود فراخوانی کنید.برای مثال:


// Create intent to deliver some kind of result data
Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri");
setResult(Activity.RESULT_OK, result);
finish();

شما باید همیشه یک کد نتیجه با نتیجه را مشخص کنید. به طور کلی، آن چه RESULT_OK یا RESULT_CANCELED است. بعد از آن شما می توانید اطلاعات بیشتری را با مفهوم، در صورت لزوم فراهم آورید.
توجه: نتیجه تنظیم کردن RESULT_CANCELED به طور پیش فرض است. بنابراین در صورتی که کاربر دکمه برگشت را قبل از اتمام عمل و قبل از اینکه شما نتیجه را تنظیم کنید بفشارد، activity اصلی نتیجه "لغو" را دریافت می کند.
چنانچه شما به سادگی نیاز به بازگشت به یک عدد صحیح که نشان دهنده یکی از گزینه های مختلف نتیجه است داشته باشد، شما می توانید کد نتیجه را به هر مقدار بالاتر از 0 تنظیم کنید. این کار به خوبی انجام می شود، زمانی که شما در حال بازگرداندن یک نتیجه به یک activity در برنامه های خود هستید، چرا که activity ای که نتیجه را دریافت می کند، می تواند ثابت ای عمومی برای تعیین ارزش نتیجه مرجع باشد.
توجه : هیچ نیازی برای بررسی اینکه آیا activity خود را با startActivity() و یا startActivityForResult() آغاز کرده اید، وجود ندارد. چنانچه از مفهومی که activity شما را آغاز کرده است، انتظارحصول نتیجه می رود setResult() را فراخوانی کنید. چنانچه منشا activity به نام startActivityForResult() بود، آنگاه سیستم نتیجه ای را که شما به setResult() عرضه می کنید را می رساند، در غیر اینصورت نتیجه نادیده گرفته می شود.
  • وهاب صمدی بخارایی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی