به دست آوردن وضعیت باتری در برنامه نویسی اندروید
سلام دوستان در این سری آموزش برنامه نویسی اندروید به آموزش به دست آوردن وضعیت باتری (battery health) در برنامه نویسی اندروید می پردازیم در اندروید برای هر باتری ممکن است شش حالت به وجود بیاید در ادامه این شش حالت رو بررسی می کنیم با ما همراه باشید.
همانطور که گفتیم باتری شش حالت دارند که عبارتند از :
- Cold
- Dead
- Good
- Over Heat
- Over Voltage
- Unknown
خب پس ابتدا وارد Layout خود شده در این جا نام آن برابر با activity_main.xml است و کد زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <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/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="184dp" android:text="Battery health" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:layout_marginTop="17dp" android:text="Check It" /> </RelativeLayout> |
همانطور که مشاهده می کنید در بالا یک دکمه و یک TextView برای نمایش وضعیت باتری استفاده شده است.
و کد مربوط به MainActivity.java هم همانند زیر می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | package ir.programchi; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { TextView textview; Button button; Context context; IntentFilter intentfilter; int status; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview = (TextView)findViewById(R.id.textView1); button = (Button)findViewById(R.id.button1); intentfilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub MainActivity.this.registerReceiver(broadcastreceiver,intentfilter); } }); } BroadcastReceiver broadcastreceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { status = intent.getIntExtra(BatteryManager.EXTRA_HEALTH,0); if(status == BatteryManager.BATTERY_HEALTH_COLD){ textview.setText("Battery health = Cold"); } if (status == BatteryManager.BATTERY_HEALTH_DEAD){ textview.setText("Battery health = Dead"); } if (status == BatteryManager.BATTERY_HEALTH_GOOD){ textview.setText("Battery health = Good"); } if (status == BatteryManager.BATTERY_HEALTH_OVERHEAT){ textview.setText("Battery health = Over Heat"); } if (status == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE){ textview.setText("Battery health = Over Voltage"); } if(status == BatteryManager.BATTERY_HEALTH_UNKNOWN){ textview.setText("Battery health = Unknown"); } if(status == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE){ textview.setText("Battery health = Unspecified failure"); } } }; } |
با استفاده از کلاس BatteryManager توسعه دهندگان می توانند به راحتی وضعیت مربوط به باتری رو به دست بیارند در ابتدا ما یک Broadcast داخلی درست کردیم تا وضعیت باتری برای ما برگردد (return شود) در بالا در صورتی که خطایی اتفاق بییفتد مقدار 0 برگشت داده خواهد شد. همانطور که مشاهده می کنید با if بررسی شده است.
این آموزش هم به پایان رسید.
موفق و موید باشید.