我从以下链接下载了源代码并添加到我的项目中。
我收到了,但找不到下面显示的R文件。
int id = com.android.internal.R.xml.power_profile;
也无法导入
import com.android.internal.util.XmlUtils;
我基本上想测量Android设备的功耗。
提前致谢。
答案 0 :(得分:3)
个人使用patached android.jar只会导致头痛,使用反射是一种访问PowerProfile.java的“简单”方式。但是,正如@FoamyGuy和无数其他人已经注意到这是隐藏的api所以将它包装在一个很大的尝试中,因为它可能会破坏Android的更高版本。
Class<?> powerProfileClazz = Class.forName("com.android.internal.os.PowerProfile");
//get constructor that takes a context object
Class[] argTypes = { Context.class };
Constructor constructor = powerProfileClazz
.getDeclaredConstructor(argTypes);
Object[] arguments = { context };
//Instantiate
Object powerProInstance = constructor.newInstance(arguments);
//define method
Method batteryCap = powerProfileClazz.getMethod("getBatteryCapacity", null);
//call method
Log.d(TAG, batteryCap.invoke(powerProInstance, null).toString());
答案 1 :(得分:2)
是的,您可以访问com.android.internal.os.PowerProfile
只需查看this link,然后按照分步流程进行操作。
答案 2 :(得分:1)
您可以使用
int id = Resources.getSystem().getIdentifier("power_profile", "xml", "android");
但要注意FoamyGuy的评论。
答案 3 :(得分:1)
最简单的方法是下载android的framework.jar并将其作为项目中的外部库包含在内。在你的android项目中包含framework.jar后,你可以找到该资源文件。