آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

افزودن امکان دریافت انواع اطلاعات (متن، عکس و ...) به اشتراک گذاری شده از برنامه های اندروید دیگر، به برنامه اندروید خود، در برنامه نویسی اندروید

حتما تابحال در برنامه های اندرویدی که متن، عکس و سایر اطلاعات را به اشتراک می گذارند، مشاهده کرده اید که هنگام انتخاب گزینه به اشتراک گذاری، تعدادی از برنامه های گوشی به صورت یک لیست نمایش داده می شوند. چنانچه بخواهیم که برنامه اندروید ما نیز در این فهرست ها نمایش داده شود باید کدهای زیر را در فایل AndroidManifest.xml پروژه اندروید کپی کنیم :


<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="application/*" />
    <data android:mimeType="audio/*" />
    <data android:mimeType="image/*" />
    <data android:mimeType="message/*" />
    <data android:mimeType="multipart/*" />
    <data android:mimeType="text/*" />
    <data android:mimeType="video/*" />
</intent-filter>

دقت کنید که در کد بالا، انواع اطلاعات، مثل متن، عکس و ... در نظر گرفته شده است، اما اگر می خواهید که تنها تعدادی از آنها را به برنامه خود اضافه کنید، می توانید سایر موارد را حذف نمایید. هر تگ data برای یک نوع اطلاعات می باشد و نوع آن اطلاعات نیز پس از مشخصه mimeType نوشته شده است.

این کد باید درون تگ مربوط به آن activity نوشته شود که قرار است اطلاعات را دریافت کرده و پردازش های لازم (نمایش یا هر عمل دیگر) را بر روی اطلاعات انجام بدهد. اگر این کد درون تگ activity اصلی برنامه اندروید نوشته شود، آنگاه نام برنامه اندروید در لیست برنامه ها و در زیر آیکون برنامه (در لیست به اشتراک گذاری) نمایش داده می شود، اما اگر درون تگ یک activity غیر از activity اصلی بنویسیم، آنگاه عنوان (title) آن activity که معمولا در action bar نمایش داده می شود، در لیست برنامه ها نوشته خواهد شد. اگر بخواهیم که در هر صورت، یک عبارت واحد در زیر نام برنامه (درون لیست برنامه های به اشتراک گذاری) نمایش داده شود، باید عبارت مورد نظرمان را با مشخصه label به کدهای بالا اضافه کنیم. یعنی خط اول کدها را به صورت زیر تغییر می دهیم :


<intent-filter android:label="Share with my app">

این تغییر، باعث می شود که وقتی برنامه اندروید ما در لیست به اشتراک گذاری نمایش داده می شود، عبارت Share with my app در زیر آیکون آن نوشته شود (شما می توانید این عبارت را به عبارت مورد نظر خود تغییر بدهید).

بنابراین، در کل، شیوه درج کدها درون کدهای activity ، مشابه کدهای زیر می باشد :


<activity
    android:name="com.package.name.ActivityName"
    android:label="@string/title_activity" >
    <intent-filter android:label="kelidestan">
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="application/*" />
        <data android:mimeType="audio/*" />
        <data android:mimeType="image/*" />
        <data android:mimeType="message/*" />
        <data android:mimeType="multipart/*" />
        <data android:mimeType="text/*" />
        <data android:mimeType="video/*" />
    </intent-filter>
</activity>
نکته

شاید تاکنون مشاهده کرده باشید که هنگامی که در گوشی اندروید، بر روی یک لینک (آدرس URL) کلیک می کنیم، تعدادی برنامه اندروید نمایش داده می شود. این پنجره که در آن لیستی از برنامه ها نمایش داده می شود، دارای عنوان complete action using است (معمولا دارای این عنوان می باشد). ممکن است که شما فکر کنید که با کد بالا، می توانید برنامه مورد نظرتان را به آن لیست اضافه کنید، اما این تصور اشتباه است و باید کدهای دیگری نوشته شود که در مبحثی دیگر، آنها را شرح خواهیم داد. با کد بالا، تنها می توان آدرس URL را به صورت متن دریافت کرد، اما با آن روش، آزادی عمل بیشتری داریم و حتی می توانیم انتخاب کنیم که تنها زمانی برنامه اندروید ما در لیست نمایش داده شود که آدرس URL متعلق به یک دامنه خاص (مثلا www.kelidestan.com) باشد. البته کدها مشابه کدهای بالا است، اما به دلیل اهمیت آن، در مبحثی دیگر شرح داده می شود.

نکته

با کد بالا، تنها امکان دریافت اطلاعات به اشتراک گذاری شده را شرح دادیم تا برنامه اندروید ما، در لیست برنامه ها نمایش داده شود. در مورد چگونگی دریافت اطلاعات و پردازش بر روی آنها، در مباحثی دیگر، توضیح خواهیم داد.

نویسنده علیرضا گلمکانی
شماره کلید 297
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 2 2 0
sky
۱۳۹۶/۰۷/۱۹
۱۰:۴۸

سلام 
 با استفاده از این کد فقط میتونیم یک عکس از گالری انتخاب و به اشتراک بذاریم... اگر بخوایم چند عکس انتخاب بشه و ارسال شه باید چیکار کرد؟

کمال طومار بزرگ
۱۴۰۳/۰۳/۰۲
۱۷:۵۰

با سلام اموزش خیلی کاربردی و خوبی بود فقط مثلا ما ی متن اشتراک گذاری میکنیم و برناممونو انتخاب میکنیم چطوری میشه متنو داخل ی EditText تو برنامه قرار داد؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)