وبلاگ - مطالب آموزشی

0
396
تشخیص فعالیت فیزیکی کاربر با استفاده از Activity Recognition

تشخیص فعالیت فیزیکی کاربر با استفاده از Activity Recognition

ساخت اپلیکیشن هایی که از محتوا و فعالیت های انجام شده از سوی کاربر آگاهی دارند یکی از بهترین راه ها برای ارائه سرویس های کاربردی به کاربران است، چندین راه برای انجام این کار در اختیار است که به عنوان نمونه می توان به استفاده از سرویس های موقعیت یاب اشاره کرد. در این مطلب آموزشی تمرکز ما بر روی استفاده از سرویس Activity Recognition گوگل پلی نهاده شده که به کمک آن می توانید تشخیص دهید کاربر در حال حاضر در حال انجام چه فعالیتی است، آیا در حال دویدن است، راه می رود، در اتومبیل است، درحال دوچرخه سواری است و یا ایستاده است.

اطلاع از فعالیت های کاربر شما را قادر به ارتقا و بهبود تجربه کاربری اپلیکیشن می گرداند، چنانچه متوجه شوید که کاربر تمرینات ورزشی خود را آغاز نموده می توانید با کمک Google Fit فعالیت های جسمانی او را تحت کنترل قرار دهید و یا چنانچه متوجه شوید که کاربر در حال رانندگی است، از نمایش نوتیفیکیشن به او اجتناب می ورزید. کدهای منبع این مطلب آموزشی در GitHub قرار داده شده و در صورت تمایل می توانید آن را دانلود کنید.

1. راه اندازی پروژه

نخستین گام برای شروع کار، ایجاد یک اپلیکیشن اندروید جدید می باشد. در این اپلیکیشن نمونه مینیموم SDK با مقدار 14 ست شده و یک اکتیویتی خالی ساخته شده است. اندروید استودیو اپلیکیشن پایه را تولید می نماید و باید فایل build.gradle را باز کرده و Play Services را در زیر گره dependencies بیفزایید.

پس از این مرحله یک کلاس جدید با نام ActivityRecognizedSevice ایجاد کنید و آن را از IntentService اکستند نمایید. زمانی که گوگل پلی سرویس فعالیت کنونی کاربر را ارسال کرد، این مقدار به IntentService باز گردانده می شود و بدین ترتیب قادر به اجرای منطق اپلیکیشن در پس زمینه می گردید.

جهت اتمام مراحل راه اندازی، فایل AndroidManifest.xml را باز کنید، در این مرحله باید ActivityRecognizedService را تعریف کرده و مجوز com.google.android.gms.permission.ACTIVITY_RECOGNISION را به اپلیکیشن اعطا کنید.

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

2. درخواست Activity Recognition

جهت استفاده از گوگل پلی سرویس باید به آن متصل شوید، برای این منظور MainActivity.java را باز کرده و به اجرای رابط های ConnectionCallbacks و OnConnectionFailedListener بپردازید. لازم است یک متغیر عضو از نوع GoogleApiClient ساخته و یک رفرنس به کلاینت API را نگه دارید.

پس از جایگذاری رابط های موردنیاز برای GoogleApiClient شما قادر به ساخت کلاینت و اتصال به گوگل پلی سرویس خواهید بود، برای این کار از ()onCreate و درخواست ActivityRecognition.API و تخصیص لیسنرها با نمونه GoogleApiClient نیاز دارید.

زمانی که نمونه GoogleApiClient متصل شد، متد ()onConnected فراخوانی می شود. با این کار شما باید یک PendingIntent بسازید که به IntentService که قبلا ساخته شده مراجعه کرده و مقدار را برای ActivityRecognitionApi ارسال کند. مشخص کردن یک بازه زمانی برای چک کردن فعالیت های کاربر از سوی API نیز لازم است. برای این اپلیکیشن نمونه مقدار 3000 یا همان 3 ثانیه تعیین شده است، اما در یک اپلیکیشن واقعی این مقدار کمتر خواهد بود، چرا که در غیر این صورت انرژی زیادی مصرف می شود.

در این مرحله اپلیکیشن سعی در تشخیص فعالیت کاربر در کمتر از 3 ثانیه می کند و داده های دریافتی را به ActivityRecognitionService ارسال می نماید.

3. مدیریت Activity Recognition

در متد ()onHandleIntent از ActivityRecognisionService نخستین کار اعتبارسنجی Intent دریافت شده است، باید اطمینان حاصل کنید که این Intent دربرگیرنده داده های موردنظر برای تشخیص فعالیت است. در صورت تایید باید ActivityRecognitionResult را از Intent خارج کرده و از فعالیت هایی که کاربر در حال انجام آنهاست اطلاع پیدا کنید. با فراخوانی ()getProbableActivities در آبجکت ActivityRecognitionResult می توانید یک لیست از فعالیت های ممکن را بازیابی نمایید.

برای این اپلیکیشن نمونه تمامی فعالیت های تشخیص داده شده به نمایش در می آیند و با فراخوانی ()getConfidence بر روی نمونه DeletedActivity قادر به دریافت میزان اطمینان گوگل پلی سرویس از فعالیت مورد نظر می گردید. چنانچه درصد نمایش داده شده 75 و یا بیشتر باشد، تقریبا از این بابت که کاربر در حال انجام آن فعالیت است اطمینان خواهید داشت.

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

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

blog_16615_1

جمع بندی

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

 

منبع:

http://code.tutsplus.com

این نوشته را به گوگل توصیه کنید :

بسته های آموزشی جذاب!بیشتر