2013-03-20 75 views

回答

2

这是因为在Android的电源管理API的调用是私营和不暴露给开发者。这些API只能通过思考

Android内部使用的关于从电源管理获取统计信息的主要包保存在com.android.internal.os.*(如com.android.internal.os.BatteryStatsImpl)中。

StackOverflow用户Chris Thompson共享了一个存储库,其中包含用于处理所需内容的工具和应用程序。你可以找到它here

你可以从他所做的事情中激发自己,并在此基础上构建一些东西。

此外,您似乎可以使用adb shell dumpsys batteryinfo获得每个应用程序使用的高级电池统计数据和CPU负载。

一个简单的strace dumpsys batteryinfo当你在adb shell可能会给你一个提示如何检索这些信息dumpsys

1

您可以使用广播接收器获取有关电池数据的信息,我不知道您经常收到这些数据,但我认为至少它可能是一个起点。

public class Main extends Activity { 

private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context arg0, Intent intent) { 
     int level = intent.getIntExtra("level", 0); 
     //Do stuff with level 
    } 
}; 

@Override 
public void onCreate(Bundle data) { 
    super.onCreate(data); 
    setContentView(R.layout.main); 
    this.registerReceiver(this.mBatInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); 
    } 
} 
相关问题