2016-11-17 98 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

相关问题