نمایش میزان باطری گوشی در اندروید
یکشنبه 16 اسفند 1394در این مقاله می خواهیم با استفاده از قطعه کدی میزان باطری گوشی خود را بر روی یک صفحه نمایش دهیم، یک نمونه ی ساده برای این مقاله هم قرار می دهیم.
یک برنامه ی کاملا ساده برای نوشتن این برنامه داریم، شما باید از broadcast receiver استفاده کنید قبل از شروع نوشتن برنامه توضیحاتی را به طور خلاصه می دهیم.
Intent.Action_Battery_Changed
این بخش شامل اطلاعات مربوط به باطری است، کلاس BatteryManager این کلاس شامل ثابت ها و رشته ها است و مقادیر آن از intent ثابتی به نام ACTION_BATTERY_CHANGED استفاده می شود.
در میان مقادیر که ثابت تعریف شده اند دو مقدار ثابت به نام BatteryManager.EXTRA_LEVEL و BatteryManager.EXTRA_SCALE داریم .
BatteryManager.Extra_Level
اگر عدد صحیحی قرار دهیم میزان مصرفی باطری در زمان فعلی را مشخص می نماید.
BatteryManager.Extra_Scale
این عدد معمولا به صورت صحیح است و میزان حداکثر باطری را مشخص می نماید.
registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
در این نمونه نیاز هست که شما BroadcastReceiver را تعریف نمایید، هر زمان که این رویداد رخ دهد مقدار مورد نظر را دریافت می نمایید، و مقدار مورد نظر را ثبت می نماید.
برای activity مورد نظر قطعه کد زیر را قرار دهید:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:id="@+id/batteryLevel" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_vertical|center_horizontal" android:textSize="20dip"> </TextView> </RelativeLayout>
یک textview برای نمایش میزان باطری در لایه ی activity خود قرار دهید.
فقط برای کلاس جاوای خود قطعه کد زیر را قرار دهید:
import android.os.BatteryManager; import android.os.Bundle; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.view.Menu; import android.widget.TextView; public class MainActivity extends Activity { private TextView batteryPercent; private void getBatteryPercentage() { BroadcastReceiver batteryLevelReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { context.unregisterReceiver(this); int currentLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); int level = -1; if (currentLevel >= 0 && scale > 0) { level = (currentLevel * 100) / scale; } batteryPercent.setText("Battery Level Remaining: " + level + "%"); } }; IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); registerReceiver(batteryLevelReceiver, batteryLevelFilter); } /* @Override*/ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); batteryPercent = (TextView) this.findViewById(R.id.batteryLevel); getBatteryPercentage(); } // @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
داخل متد OnCraete یک textview قرار دادیم که آن را تعریف می نماییم، یک متد به نام OnCraeteOptionMenu استفاده کرده ایم که برای تعریف منو از آن استفاده می شود، یک متد برای درصد اندازه ی شارژ باطری می نویسیم و بعد آن را در متد oncreate تعریف می نماییم.
متدی که نوشتیم دو متغییر صحیحی است که در بالا تعریف کرده بودیم میزان مصرفی باطری و میزان حداکثر باطری که اگر مقدار مورد نظر را در 100 ضرب کنیم بر روی scale تقسیم نماییم میزان در صد باطری گوشی مشخص می شود.
خروجی به صورت زیر خواهد بود:
- Android
- 1k بازدید
- 3 تشکر