频道栏目
首页 > 资讯 > Android > 正文

[Android开发学习32]BroadcastReceiver之电源管理

13-04-06        来源:[db:作者]  
收藏   我要投稿

直接上代码:

[java]
/* ========================== Battery Start =============================*/ 
     
    int tBatteryLevel = 0, tBatteryCurLevel = 0; 
    int tBatteryChargeFlag = -1; 
     
    private void Battery(){ 
        int tTempFlag = 0; 
         
        ImageButton tTempButton = (ImageButton)findViewById(R.id.top_battery); 
        tTempButton.setVisibility(View.INVISIBLE); 
         
        IntentFilter   mIntentFilter = new IntentFilter();   
        mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);     
         
         
        // 声明消息处理过程  
        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 tTempLevel = intent.getIntExtra("level", 0); 
                    //电池最大容量  
                    int tTempScale = intent.getIntExtra("scale", 100); 
                    //电池状态,返回是一个数字       
                    // BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态       
                    // BatteryManager.BATTERY_STATUS_DISCHARGING 放电中       
                    // BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电       
                    // BatteryManager.BATTERY_STATUS_FULL 电池满  
                    int tTempStatus = intent.getIntExtra("status", 0); 
                     
                    tTempLevel = (tTempLevel * 100) / tTempScale; 
                    if (tTempLevel > 95) 
                        tBatteryLevel = 5; 
                    else if(tTempLevel > 80) 
                        tBatteryLevel = 4; 
                    else if(tTempLevel > 60) 
                        tBatteryLevel = 3; 
                    else if(tTempLevel > 40) 
                        tBatteryLevel = 2; 
                    else if(tTempLevel > 20) 
                        tBatteryLevel = 1; 
                    else 
                        tBatteryLevel = 0; 
                     
                    if (tTempStatus == BatteryManager.BATTERY_STATUS_CHARGING) 
                        tBatteryChargeFlag = 1; 
                    else 
                        tBatteryChargeFlag = 0; 
                } 
            } 
             
        }; 
 
        registerReceiver(mIntentReceiver, mIntentFilter);  
    } 
/* ========================== Battery End   =============================*/ 

/* ========================== Battery Start =============================*/
 
 int tBatteryLevel = 0, tBatteryCurLevel = 0;
 int tBatteryChargeFlag = -1;
 
 private void Battery(){
  int tTempFlag = 0;
  
  ImageButton tTempButton = (ImageButton)findViewById(R.id.top_battery);
  tTempButton.setVisibility(View.INVISIBLE);
  
  IntentFilter   mIntentFilter = new IntentFilter(); 
  mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);   
  
  
  // 声明消息处理过程
  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 tTempLevel = intent.getIntExtra("level", 0);
     //电池最大容量
     int tTempScale = intent.getIntExtra("scale", 100);
     //电池状态,返回是一个数字    
     // BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态    
     // BatteryManager.BATTERY_STATUS_DISCHARGING 放电中    
     // BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电    
     // BatteryManager.BATTERY_STATUS_FULL 电池满
     int tTempStatus = intent.getIntExtra("status", 0);
     
     tTempLevel = (tTempLevel * 100) / tTempScale;
     if (tTempLevel > 95)
      tBatteryLevel = 5;
     else if(tTempLevel > 80)
      tBatteryLevel = 4;
     else if(tTempLevel > 60)
      tBatteryLevel = 3;
     else if(tTempLevel > 40)
      tBatteryLevel = 2;
     else if(tTempLevel > 20)
      tBatteryLevel = 1;
     else
      tBatteryLevel = 0;
     
     if (tTempStatus == BatteryManager.BATTERY_STATUS_CHARGING)
      tBatteryChargeFlag = 1;
     else
      tBatteryChargeFlag = 0;
    }
   }
   
  };

  registerReceiver(mIntentReceiver, mIntentFilter);
 }
/* ========================== Battery End   =============================*/
 

 

另外还有一份别人的参考代码:

[java]
检测到现在在电源状态: 
 
IntentFilter   mIntentFilter = new IntentFilter(); 
 
mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);   
registerReceiver(mIntentReceiver, mIntentFilter); 
 
 //声明消息处理过程    
   private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {   
       @Override   
       public void onReceive(Context context, Intent intent) {   
           String action = intent.getAction();   
           //要看看是不是我们要处理的消息    
           if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {              
               //电池电量,数字    
               Log.d("Battery", "" + intent.getIntExtra("level", 0));                  
               //电池最大容量    
               Log.d("Battery", "" + intent.getIntExtra("scale", 0));                  
               //电池伏数    
               Log.d("Battery", "" + intent.getIntExtra("voltage", 0));                  
               //电池温度    
               Log.d("Battery", "" + intent.getIntExtra("temperature", 0));   
                  
               //电池状态,返回是一个数字    
               // BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态    
               // BatteryManager.BATTERY_STATUS_DISCHARGING 放电中    
               // BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电    
               // BatteryManager.BATTERY_STATUS_FULL 电池满    
               Log.d("Battery", "" + intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN));   
                 
               //充电类型 BatteryManager.BATTERY_PLUGGED_AC 表示是充电器,不是这个值,表示是 USB    
               Log.d("Battery", "" + intent.getIntExtra("plugged", 0));   
                 
               //电池健康情况,返回也是一个数字    
               //BatteryManager.BATTERY_HEALTH_GOOD 良好    
               //BatteryManager.BATTERY_HEALTH_OVERHEAT 过热    
               //BatteryManager.BATTERY_HEALTH_DEAD 没电    
               //BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 过电压    
               //BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未知错误    
               Log.d("Battery", "" + intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN));   
           }   
       }   
   }; 

检测到现在在电源状态:

IntentFilter   mIntentFilter = new IntentFilter();

mIntentFilter.addAction(Intent.ACTION_BATTERY_CHANGED); 
registerReceiver(mIntentReceiver, mIntentFilter);

 //声明消息处理过程 
   private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { 
       @Override 
       public void onReceive(Context context, Intent intent) { 
           String action = intent.getAction(); 
           //要看看是不是我们要处理的消息 
           if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {            
               //电池电量,数字 
               Log.d("Battery", "" + intent.getIntExtra("level", 0));                
               //电池最大容量 
               Log.d("Battery", "" + intent.getIntExtra("scale", 0));                
               //电池伏数 
               Log.d("Battery", "" + intent.getIntExtra("voltage", 0));                
               //电池温度 
               Log.d("Battery", "" + intent.getIntExtra("temperature", 0)); 
                
               //电池状态,返回是一个数字 
               // BatteryManager.BATTERY_STATUS_CHARGING 表示是充电状态 
               // BatteryManager.BATTERY_STATUS_DISCHARGING 放电中 
               // BatteryManager.BATTERY_STATUS_NOT_CHARGING 未充电 
               // BatteryManager.BATTERY_STATUS_FULL 电池满 
               Log.d("Battery", "" + intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN)); 
               
               //充电类型 BatteryManager.BATTERY_PLUGGED_AC 表示是充电器,不是这个值,表示是 USB 
               Log.d("Battery", "" + intent.getIntExtra("plugged", 0)); 
               
               //电池健康情况,返回也是一个数字 
               //BatteryManager.BATTERY_HEALTH_GOOD 良好 
               //BatteryManager.BATTERY_HEALTH_OVERHEAT 过热 
               //BatteryManager.BATTERY_HEALTH_DEAD 没电 
               //BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE 过电压 
               //BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE 未知错误 
               Log.d("Battery", "" + intent.getIntExtra("health", BatteryManager.BATTERY_HEALTH_UNKNOWN)); 
           } 
       } 
   };
 

 

相关TAG标签
上一篇:探讨学习SEO的五个方面
下一篇:[Android开发学习31]Gallery之初体验--实现手指直接拖动图片移动
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站