رفتن به مطلب
  • 0

android:exported چیست؟


Salar82

سوال

درود

امروز اندروید استودیو رو به آخرین ورژن(Android Studio Arctic Fox | 2020.3.1 Patch 1) آپدیت کردم و موقع ران کردن پروژه گیر داد که در تگ اکتیویتی main در فایل منیفست، عبارت android:exported رو تنظیم نکردی...

این رو قبلا جایی ندیده بودم، سرچ هم که کردم چیز خاصی دستگیرم نشد متاسفانه..

 

اگر کسی می‌دونه خوش‌حال میشم خیلی مختصر بگه این چی چیه :) ...

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

5 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در ۱۴۰۰/۶/۱ در ۱۲:۳۳، Salar۸۲ گفته است:

درود

امروز اندروید استودیو رو به آخرین ورژن(Android Studio Arctic Fox | 2020.3.1 Patch 1) آپدیت کردم و موقع ران کردن پروژه گیر داد که در تگ اکتیویتی main، عبارت android:exported رو تنظیم نکردی...

این رو قبلا جایی ندیده بودم، سرچ هم که کردم چیز خاصی دستگیرم نشد متاسفانه..

 

اگر کسی می‌دونه خوش‌حال میشم خیلی مختصر بگه این چی چیه :) ...

 

تو سایت خود اندروید دیدم فکنم مربوط به سرویس میشه و از نوع بول هست

<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "location" | "mediaPlayback" |
                                        "mediaProjection" | "microphone" | "phoneCall"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    . . .
</service>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۶/۱ در ۱۲:۳۶، DexterFstone گفته است:

تو سایت خود اندروید دیدم فکنم مربوط به سرویس میشه و از نوع بول هست

<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "location" | "mediaPlayback" |
                                        "mediaProjection" | "microphone" | "phoneCall"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    . . .
</service>

 

تشکر

الان پروژه جدید هم که میسازید، این اتریبیوت به تگ اکتیویتی به طور پیشفرض اضافه میشه.

حالا این فقط مربوط به سرویس هست؟

و مهمتر از همه کاربردش چیه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۶/۱ در 12:44، Salar82 گفته است:

تشکر

الان پروژه جدید هم که میسازید، این اتریبیوت به تگ اکتیویتی به طور پیشفرض اضافه میشه.

حالا این فقط مربوط به سرویس هست؟

و مهمتر از همه کاربردش چیه

توضیحش اینه

نقل قول
android:exported
This element sets whether the activity can be launched by components of other applications — "true" if it can be, and "false" if not. If "false", the activity can be launched only by components of the same application or applications with the same user ID.

If you are using intent filters, you should not set this element "false". If you do so, and an app tries to call the activity, system throws an ActivityNotFoundException. Instead, you should prevent other apps from calling the activity by not setting intent filters for it.

If you do not have intent filters, the default value for this element is "false". If you set the element "true", the activity is accessible to any app that knows its exact class name, but does not resolve when the system tries to match an implicit intent.

This attribute is not the only way to limit an activity's exposure to other applications. You can also use a permission to limit the external entities that can invoke the activity (see the permission attribute).

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و درود.

این اتریبیوت مشخص میکنه که کامپوننتهای برنامه شما فقط با برنامه خود شما باز بشه یا نه. مثلا اگه مقدارش true باشه سایر اپها میتونن این کامپوننت(اکتیویتی یا سرویس) رو استارت کنن. نمونه ملموسش باز کردن پروفایل کاربر تو اینستاگرام هست. شما از طریق برنامه خودت میتونی مستقیم پروفایل یه نفرو باز کنی. این خصوصیت به خاطر همین exported هست.

در ضمن این مورد تا الان که به صورت پیشفرض روی false ست بود و نیازی نبود اصلا تعریفش کنی. احتمالا ناقص نصب کردی استودیو رو

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۰/۶/۱ در 17:08، محمدرضا شاهپیری گفته است:

سلام و درود.

این اتریبیوت مشخص میکنه که کامپوننتهای برنامه شما فقط با برنامه خود شما باز بشه یا نه. مثلا اگه مقدارش true باشه سایر اپها میتونن این کامپوننت(اکتیویتی یا سرویس) رو استارت کنن. نمونه ملموسش باز کردن پروفایل کاربر تو اینستاگرام هست. شما از طریق برنامه خودت میتونی مستقیم پروفایل یه نفرو باز کنی. این خصوصیت به خاطر همین exported هست.

خیلی ممنون بابت پاسخ سریع و دقیق شما :53:

 

در ۱۴۰۰/۶/۱ در 17:08، محمدرضا شاهپیری گفته است:

در ضمن این مورد تا الان که به صورت پیشفرض روی false ست بود و نیازی نبود اصلا تعریفش کنی. احتمالا ناقص نصب کردی استودیو رو

1022015080_Screenshot(6).png.f75ea9410e21c3f1d0624475a6cc653c.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...