android 电池 温度 屏幕亮度设计

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.BatteryManager;
import android.os.Bundle;
import android.os.PowerManager;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

public class BatteryActivity extends Activity {
    /** Called when the activity is first created. */
    
    private IntentFilter   mIntentFilter;
    private TextView mHealth;
    private TextView mLevel;
    private TextView mVoltage;
    private TextView mTemperature;
    private ImageView image;
    private ToggleButton btn_save,btn_sleep;
    private final static String ShareState="ModeState";
    private SharedPreferences sp ;
    private boolean mode_flag=false;
    private WifiManager mWifiManager;
    private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() 
    {


        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            String action = intent.getAction();
            if (action.equals(Intent.ACTION_BATTERY_CHANGED)) 
            {
                int scale = intent.getIntExtra("scale", 100);
                int level=intent.getIntExtra("level", 0);


                if(level<10)
                {
                    image.setImageResource(R.drawable.battery_00);
                }else if(level>=10&&level<20)
                {
                    image.setImageResource(R.drawable.battery_10);
                }
                else if(level>=20&&level<30)
                {
                    image.setImageResource(R.drawable.battery_20);
                }
                else if(level>=30&&level<40)
                {
                    image.setImageResource(R.drawable.battery_30);
                }
                else if(level>=40&&level<50)
                {
                    image.setImageResource(R.drawable.battery_40);
                }
                else if(level>=50&&level<60)
                {
                    image.setImageResource(R.drawable.battery_50);
                }
                else if(level>=60&&level<70)
                {
                    image.setImageResource(R.drawable.battery_60);
                }
                else if(level>=70&&level<80)
                {
                    image.setImageResource(R.drawable.battery_70);
                }
                else if(level>=80&&level<90)
                {
                    image.setImageResource(R.drawable.battery_80);
                }
                else if(level>=90&&level<100)
                {
                    image.setImageResource(R.drawable.battery_90);
                }
                else
                    image.setImageResource(R.drawable.battery_100);
   
                mLevel.setText("剩余电量:" + String.valueOf(level * 100 / scale) + "%");
                mVoltage.setText("电池电压:" + intent.getIntExtra("voltage", 0) +"mV");
                mTemperature.setText("电池温度 :" +tenthsToFixedString((intent.getIntExtra("temperature", 0))));
                int health = intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN);
                String healthString;
                if (health == BatteryManager.BATTERY_HEALTH_GOOD) {
                    healthString = "非常健康";
                } else if (health == BatteryManager.BATTERY_HEALTH_OVERHEAT) {
                    healthString = "BATTERY_HEALTH_OVERHEAT";
                } else if (health == BatteryManager.BATTERY_HEALTH_DEAD) {
                    healthString = "BATTERY_HEALTH_DEAD";
                } else if (health == BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE) {
                    healthString = "BATTERY_HEALTH_OVER_VOLTAGE";
                } else if (health == BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE) {
                    healthString = "BATTERY_HEALTH_UNSPECIFIED_FAILURE";
                }  else {
                    healthString = "不清楚";
                }
                
                mHealth.setText("健康状态 :"+healthString);
            }
        }
        
    };
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.battery);
        
        mIntentFilter = new IntentFilter();
        mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
        sp= getSharedPreferences(ShareState, MODE_PRIVATE);
        mWifiManager=(WifiManager) this.getSystemService(Context.WIFI_SERVICE);
             
        mLevel=(TextView) findViewById(R.id.level);
        mHealth=(TextView) findViewById(R.id.health);
        mTemperature=(TextView) findViewById(R.id.temperature);
        mVoltage=(TextView) findViewById(R.id.voltage);
        image=(ImageView) findViewById(R.id.pleve);
        btn_save=(ToggleButton) findViewById(R.id.save);
        btn_sleep=(ToggleButton) findViewById(R.id.sleep);
        
        mode_flag=sp.getBoolean("Save_KEY", true);
        if(mode_flag)
            btn_save.setChecked(true);
        else
            btn_save.setChecked(false);
        mode_flag=sp.getBoolean("Sleep_KEY", true);
        if(mode_flag)
            btn_sleep.setChecked(true);
        else
            btn_sleep.setChecked(false);
        registerReceiver(mIntentReceiver, mIntentFilter);   
        
        btn_save.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //存入数据
                Editor editor = sp.edit();                             
                if(btn_save.isChecked())
                {
                    Toast.makeText(BatteryActivity.this, "touch in", 1000).show();
                    stopAutoBrightness(BatteryActivity.this);
                    setBrightness(BatteryActivity.this, 65);
                    if(mWifiManager.isWifiEnabled())
                        mWifiManager.setWifiEnabled(false);


                      editor.putBoolean("Save_KEY", true);
                      editor.commit();
                    
                }
                else
                {
                    Toast.makeText(BatteryActivity.this, "touch out", 1000).show(); 
                    setBrightness(BatteryActivity.this, 125);
                    mWifiManager.setWifiEnabled(true);
                    startAutoBrightness(BatteryActivity.this) ;
                    editor.putBoolean("Save_KEY", false);
                    editor.commit();
                }
            }
        });
        btn_sleep.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //存入数据
                Editor editor = sp.edit();     
                
                if(btn_sleep.isChecked())
                {
                    setAirplaneModeOn(BatteryActivity.this,true);
                    editor.putBoolean("Sleep_KEY", true);
                    editor.commit();
                }
                else
                {
                    setAirplaneModeOn(BatteryActivity.this,false);
                    editor.putBoolean("Sleep_KEY", false);
                    editor.commit();
                }
                
                if(getAirplaneMode(BatteryActivity.this))
                {
                    Toast.makeText(BatteryActivity.this, "AirMode", 1000).show();
                }
                else
                    Toast.makeText(BatteryActivity.this, "NotAirMode", 1000).show();  
            }
        });
    }
    
    private  String tenthsToFixedString(int x) {
        int tens = x / 10;
        return Integer.toString(tens) + "." + (x - 10 * tens);
    }
  /*  
    * 判断手机是否是飞行模式
    * @param context
    * @return
    */
    public static boolean getAirplaneMode(Context context){
    int isAirplaneMode = Settings.System.getInt(context.getContentResolver(),
    Settings.System.AIRPLANE_MODE_ON, 0) ;
    return (isAirplaneMode == 1)?true:false;
    }
    
    /**
    * 设置手机飞行模式
    * @param context
    * @param enabling true:设置为飞行模式 false:取消飞行模式
    */
    public static void setAirplaneModeOn(Context context,boolean enabling) {
    Settings.System.putInt(context.getContentResolver(),
    Settings.System.AIRPLANE_MODE_ON,enabling ? 1 : 0);
    Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
    intent.putExtra("state", enabling);
    context.sendBroadcast(intent);
    }
    
    //------------省电亮度调节-------------------
    public static void setBrightness(Activity activity, int brightness) {                     
        WindowManager.LayoutParams lp = activity.getWindow().getAttributes();     
      
         lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);    
     //    Log.d("lxy", "set  lp.screenBrightness == " + lp.screenBrightness);  
      
        activity.getWindow().setAttributes(lp);  
        //save
        ContentResolver resolver = activity.getContentResolver();  
        saveBrightness( resolver, brightness);
        
        }      
    public static void saveBrightness(ContentResolver resolver, int brightness) {      
        
        Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");     
      
         android.provider.Settings.System.putInt(resolver, "screen_brightness", brightness);      
                          
         resolver.notifyChange(uri, null);
         } 
    public static int getScreenBrightness(Activity activity) {     
        
        int nowBrightnessValue = 0;             
         ContentResolver resolver = activity.getContentResolver();             
         try{                 
         nowBrightnessValue = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);           
           }        
          catch(Exception e) {                
          e.printStackTrace();           
           }             
         return nowBrightnessValue;  
         } 
    
    /** * 停止自动亮度调节 */  
    
    public static void stopAutoBrightness(Activity activity) {     
  
     Settings.System.putInt(activity.getContentResolver(),            
  
      Settings.System.SCREEN_BRIGHTNESS_MODE,             
  
     Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);  
     }  
         /** * 开启亮度自动调节 *          
         * @param activity */                         
    public static void startAutoBrightness(Activity activity) {     
       
          Settings.System.putInt(activity.getContentResolver(),                          
          Settings.System.SCREEN_BRIGHTNESS_MODE,                           
         Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);         
         } 
    
    /** * 判断是否开启了自动亮度调节 */  
    
    public static boolean isAutoBrightness(ContentResolver aContentResolver) {        
    boolean automicBrightness = false;        
    try{            
    automicBrightness = Settings.System.getInt(aContentResolver,                  
  
    Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;       
     }    
    catch(SettingNotFoundException e)     
   {          
     e.printStackTrace();      
      }        
    return automicBrightness;  
    } 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值