سلام خدمت شما دوستان . تو این آموزش قصد دارم نحوه دریافت حالت های مختلف باتری در اندروید رو بهتون آموزش بدم .

دریافت حالت های مختلف باتری در اندروید

منظور از حالت های مختلف باتری چیست ؟

شما ممکنه در برنامتون نیاز به این داشته باشید که بدونید درصد باتری گوشی کاربر چقدره یا اینکه اگه باتری به درصد خاصی رسید برنامتون کار خاصی انجام بده . همینطور شاید نیاز داشته باشید بفهمید که چه وقتی گوشی به شارژ وصل میشه یا چه وقتی از شارژ کنده میشه و … . برای این منظور نیاز دارید تغییرات باتری رو مانیتور کنید .

چطوری به حالت های مختلف باتری پی ببریم؟

برای اینکه بتونیم حالت های مختلف باتری رو زیر نظر داشته باشیم به یک یا دو رسیور(Receiver) نیاز داریم . حالا چرا دوتا ؟ چون اگه شما بخاین حالت هایی مثل درصد باتری رو در هر لحظه داشته باشید باید  یک رسیور تعریف کنید و اون رو حتما در کد های جاوا رجیستر کنید و اگه این رسیور رو در فایل AndroidManifast.xml رجیستر کنید کار نمیکنه و این نوع تغییرات رو نمیتونید دریافت کنید . ولی اگه شما فقط بخاید وصل شدن گوشی به شارژ یا از شارژ کنده شدن رو  دریافت کنید باید اون رو در فایل  AndroidManifast.xml رجیستر کنید .

Receiver برای دریافت حالت های مختلف باتری :

کد رسیوری که برای حالت های مختلف باتری باید تعریف کنیم به این صورت است :

شما میتونید حالت های مختلف باتری رو با متغیر های استاتیک تعریف شده در کلاس BatteryManager ببینید .

برای رجیستر کردن این رسیور هم از IntentFilter به صورت زیر استفاده میکنیم :

شما میتونید کد :

رو در متد onResume یا onCreate اکتیویتون استفاده کنید . فقط در نظر داشته باشید که باید حتما در متد های onPuse یا onDestroy رسیورتون رو آنرجیستر کنید .

نکته : فقط به این نکته توجه کنید که اگه رسیور رو در متد onCreate رجیستر کردین اون رو در متد onDestroy آنرجیستر کنید و اگه در متد onResume رجیستر کردین اون رو در متد onPuse آنرجیستر کنید .

چگونه بفهمیم گوشی به کابل شارژ وصل شده یا از شارژ کنده شده ؟

شما برای این کار میتونید یه کلاس رسیور دیگه تعریف کنید و در فایل AndroidManifast.xml رجیستر کنید یا اینکه همه اینها به علاوه کدهای مربوط به استاتوس باتری رو تو یه کلاس رسیور تعریف کنید و برای  فهمیدن اینکه به کابل وصل شده یا نه IntentFilter هاش رو در فایل AndroidManifast.xml تعریف کنید و برای استاتوس باتری هم اون رو در کد های جاوا رجیستر کنید . از هرکدوم از این راه ها میتونید استفاده کنید بستگی به خودتون داره که با کدومش بیشتر حال کنید ! البته این نکته هم ناگفته نماند که برای این حالت که بفهمید گوشی به شارژ وصل شده یا نه  هم میتونید رسیورش رو در کد های جاوا رجیستر کنید ولی اگه از این روش استفاده کنید وقتی برنامتون در حال اجرا نیست نمیتونه بفهمه که گوشی به شارژ وصل شده یا نه .

IntentFilter هایی که برای قطع و وصل شدن شارژ نیازه به این صورت هستند :

در کد های جاوا :

در فایل AndroidManifast.xml  :

امید وارم از این آموزش استفاده لازم رو برده باشید .

موفق و پیروز باشید .

به این مطلب چه امتیازی میدهید ؟

اشتراک
باخبر شدن از
guest
0 Comments
Inline Feedbacks
View all comments