کاربرد تگ uses-feature در مانیفست

در این جلسه از سری مباحث آموزش برنامه نویسی اندروید ابتدا به بررسی کاربرد تگ uses-feature در برنامه نویسی اندروید پرداخته سپس جزئیات آن را با هم مرور می‌کنیم.

تگ uses-feature چیست و چه کاربردی دارد؟

به نام خدا. در جلسات قبل با فایل مانیفست (AndroidManifest.xml) و کاربردهای آن آشنا شده‌ایم. از جمله تعیین حق دسترسی‌ها (Permission)، آیکون و نام اپلیکیشن، تم برنامه و سایر اطلاعاتی که سیستم عامل اندروید برای بررسی اپلیکیشن به آنها نیاز دارد.

آشنایی با uses-feature در برنامه نویسی اندروید در اندروید استودیو

یکی دیگر از قابلیت‌هایی که در مانیفست تعریف می‌شود uses-feature است. لغت feature به معنی ویژگی است. بنابراین از نحوه نامگذاری این تگ می‌توان تا حدودی به نوع کاربرد آن پی برد. از این تگ برای اعلام سخت افزار و نرم افزار موردنیاز اپلیکیشن به گوگل پلی (Google Play) و سایر مارکت‌های اندرویدی استفاده می‌شود.
فرض کنید قصد ساخت اپلیکیشنی دارید که نیازمند استفاده از دوربین است. برای مثال می‌توان به برنامه‌های بارکدخوان، شبکه‌های اجتماعی با محوریت مدیا مانند اینستاگرام، نرم افزارهای ثبت و ویرایش عکس و فیلم و… اشاره کرد. همه این موارد مستلزم وجود سخت افزار دوربین در گوشی یا تبلت یا سایر دستگاه‌های اندرویدی هستند. یا اپلیکیشن دیگری که کاربرد آن پرداخت وجه از طریق NFC است.
در موارد فوق، اگر کاربر برنامه ما را روی دستگاه اندرویدی خود نصب کند اما از نرم افزار و سخت افزار موردنیاز آن برخوردار نباشد، عملا برای او کاربردی نداشته و مجبور به حذف آن از روی سیستم عامل خواهد بود. برای پیشگیری از بروز این اشتباهات می‌توانیم از قابلیت uses-feature در پروژه اندرویدی خود استفاده کنیم.
دوربین و پرداخت از طریق NFC را در پاراگراف قبل مثال زدم. فروشگاه گوگل پلی به امکانات و قابلیت‌های هر دیوایس اندرویدی دسترسی دارد. بنابراین می‌تواند لیست برنامه‌ها را مطابق با امکانات در دسترس کاربر به او نشان دهد.

<uses-feature android:name="android.hardware.camera" android:required="true" />

در خط فوق دو ویژگی برای تگ uses-feature تعریف شده. اولی name که نام ویژگی و قابلیت موردنیاز را نشان می‌دهد و دومی الزامی بودن یا نبودنِ وجود آن را تعیین می‌کند.
نام android.hardware.camera نشان دهنده این است که برنامه ما به وجود سخت افزار دوربین نیازمند بوده و قسمت دوم یعنی required مقدار آن true است؛ به این معنی که وجود این قابلیت الزامی است. بنابراین اپلیکیشنی که ما در گوگل پلی منتشر کرده‌ایم فقط برای آن دسته از کاربرانی نمایش داده خواهد شد که دیوایس آنها دارای دوربین باشد. اما در صورتی که قسمت دوم false باشد به معنی غیر الزامی بودن این قابلیت است. یعنی در قسمتی از برنامه‌ی ما از دوربین استفاده می‌شود اما الزامی نیست و بدون وجود سخت افزار دوربین هم می‌توان از امکانات برنامه استفاده کرد که در این صورت اپلیکیشن ما هم در نتایج جستجوی این دسته از کاربران نمایش داده خواهد شد.

<uses-feature android:name="android.hardware.bluetooth" android:required="false" />

به عنوان مثال قصد انتشار یک برنامه انتقال فایل در مارکت گوگل پلی را دارم. این برنامه از طریق Wifi و Bluetooth امکان به اشتراک گذاری فایل را بین دستگاه‌های مختلف فراهم می‌کند. با اضافه کردن خط فوق به مانیفست پروژه، به گوگل پلی اعلام می‌کنم برنامه من نیاز به قابلیت بلوتوث دارد اما الزامی در کار نیست و مایلم برنامه من به کاربرانی که دستگاه اندرویدی‌شان ویژگی بلوتوث را ندارد نیز نمایش داده شود و بتوانند آن را روی دیوایس خود نصب کنند. در این صورت کاربر می‌تواند صرفا از وای فای برای انتقال فایل استفاده کند.

نکته: تگ uses-feature را با uses-permission اشتباه نگیرید. uses-permission برای گرفتن حق دسترسی از کاربر استفاده می‌شود در حالی که uses-feature صرفا برای نمایش یا عدم نمایش اپ در لیست برنامه‌های Google Play روی دیوایس‌ها کاربرد دارد و دستگاه اندرویدی هنگام نصب اپلیکیشن این موارد را بررسی نمی‌کند.

ویژگی‌های پرکاربرد در تگ uses-feature

در ادامه تعدادی دیگر از پرکاربردترین ویژگی‌های اندروید که قابل تعریف در تگ uses-feature هستند را معرفی می‌کنم:

نام ویژگی توضیحات
android.hardware.microphone میکروفون ضبط صدای دستگاه
android.hardware.camera.front دوربین جلوی دیوایس اندرویدی
android.hardware.fingerprint حسگر اثر انگشت
android.hardware.location موقعیت یابی
android.hardware.location.gps موقعیت یابی بر اساس GPS
android.hardware.location.network موقعیت یابی بر اساس شبکه کاربر
android.hardware.nfc ماژول NFC
android.hardware.sensor.accelerometer سنسور شتاب سنج
android.hardware.sensor.barometer سنسور فشارسنج
android.hardware.sensor.compass قطب نما
android.hardware.sensor.gyroscope سنسور دَوَران نما
android.hardware.sensor.ambient_temperature سنسور دماسنج
android.hardware.sensor.heartrate سنسور ضربان قلب
android.hardware.sensor.stepcounter سنسور قدم شمار
android.hardware.screen.landscape جهت افقی صفحه نمایش
android.hardware.screen.portrait جهت عمودی صفحه نمایش
android.hardware.telephony.gsm ارتباط موبایلی GSM
android.hardware.wifi دسترسی به شبکه WiFi
android.software.webview نمایش WebView

مطالعه‌ی بیشتر:

https://developer.android.com/guide/topics/manifest/uses-feature-element

دانلود نسخه PDF این آموزش
تعداد صفحات : ۴
حجم : ۱ مگابایت
قیمت : رایگان
دانلود رایگان با حجم ۱ مگابایت لینک کمکی
این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
4.6/5 - (9 امتیاز)
پرسش‌ها و دیدگاه‌های کاربران
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

با دریافت این دوره به تمامی آموزش‌های غیر رایگان و رایگان موجود در وب سایت دسترسی دارید که تخفیفی برای آموزش‌های غیر رایگان نیز درنظر گرفته شده. این پکیج به دو صورت دانلودی و ارسال پستی ارائه می‌گردد.
آموزش‌های اندروید استودیو در دو دسته «پایه» و «تکمیلی» منتشر می‌شوند.
آموزش‌های پایه شامل مباحث اصلی و ضروری و آموزش‌های تکمیلی مطالبی است که می‌بایست در کنار مطالب اصلی بررسی شود.
با خرید این دوره، به تمامی آموزش‌های غیر رایگانی که در آینده منتشر می‌شود نیز به صورت رایگان دسترسی خواهید داشت!

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد