2016-11-17 95 views
0

當我使用BatteryStatsHelper得到應用的電池信息來源,我已經設置了權限「android.permission.BATTERY_STATS」,但系統說我沒有權限。如何使用BatteryStatsHelper獲取應用程序電池信息?

Caused by: java.lang.SecurityException: uid 10164 does not have android.permission.BATTERY_STATS. 
+0

你能證明你的清單文件? – MNM

+0

我發現該權限可能只能由系統應用程序使用。真的嗎? – bin

+0

<用途的許可機器人:名稱= 「android.permission.INTERNET對」/> <使用的許可機器人:名稱= 「android.permission.ACCESS_NETWORK_STATE」/> <使用的許可機器人:名稱=「android.permission。 READ_PHONE_STATE「/> <使用權限android:name =」android.permission.BLUETOOTH「/> <使用權限android:name =」android.permission.WAKE_LOCK「/> <使用權限android:name =」 android.permission.ACCESS_WIFI_STATE「/> <使用權限android:name =」android.permission.DEVICE_POWER「/> <使用權限android:name =」android.permission.BATTERY_STATS「/> – bin

回答

0

在這裏嘗試這樣的事情,擺脫Batstat方法。 也在這裏檢查http://www.tutorialforandroid.com/2009/01/getting-battery-information-on-android.html

這應該會給你所有的信息,你想監測一個棉絮。

public class Main extends Activity { 
private TextView batteryTxt; 
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ 
@Override 
public void onReceive(Context ctxt, Intent intent) { 
    int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); 
    batteryTxt.setText(String.valueOf(level) + "%"); 
} 
}; 

@Override 
public void onCreate(Bundle b) { 
super.onCreate(b); 
setContentView(R.layout.main); 
batteryTxt = (TextView) this.findViewById(R.id.batteryTxt); 
this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
} 
} 
+0

謝謝。您提供的方式無法獲得應用程序的功耗。我想知道如何使用BatteryStatsHelper.class,espcially的refreshStats(),因爲當我使用此功能,將會有一個錯誤「UID 10202沒有android.permission.BATTERY_STATS」謝謝。 – bin

相關問題