2012-11-29 74 views
1

我想在某些代碼後更換電池。我正在使用下面的代碼,但不幸的是沒有運氣。我得到零的任何想法,請在特定代碼後獲取Android上的電池電量

在上創建一個:

batteryIntent = registerReceiver(null,new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 

private double batteryLevel() { 
    int rawlevel = batteryIntent.getIntExtra("level", -1); 
    double scale = batteryIntent.getIntExtra("scale", -1); 
    double level = -1; 
    if (rawlevel >= 0 && scale > 0) { 
     level = rawlevel/scale; 

    } 
return level; 

} 

,並在的onClick:

double startbatterylevel = batteryLevel(); 

//certain code 

double estimatedbattery = startbatterylevel - endbatterylevel ; 
Estbatterylevel.setText("estimated battery"+estimatedbattery); 
+2

也許電池沒有變化? – Yahia

+1

你怎麼知道應該有?採取時間不是一個可行的提示/參數...有很多方面,可以生效電池... – Yahia

回答

3

就像你寫的那樣,我們不知道問題出在電池電量檢測方法還是減法。 batteryLevel();方法的輸出是什麼?它是準確還是始終是默認值?

你可以儘量去適應這個頁面上的例子:http://mobiledevtuts.com/android/android-sdk-get-device-battery-information/

public void onCreate(Bundle savedInstanceState) { 
    ... 
    this.registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    ... 
} 

private BroadcastReceiver batteryInfoReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); 
     Estbatterylevel.setText("estimated battery" + level); 
    } 
}; 

如果仍顯示爲0,也許有兼容性問題。你能提供你的設備規格和Android版本嗎?

+0

輸出零 – user1862650

+0

你註冊了'BroadcastReceiver'你的清單嗎? – tolgap

+0

我想不,你能否讓我知道該怎麼做? – user1862650