2011-11-11 29 views
6

Tôi đã tải xuống mã nguồn từ liên kết bên dưới và thêm vào dự án của tôi.Tôi làm cách nào để sử dụng API riêng tư PowerProfile của Android?

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/com/android/internal/os/PowerProfile.java

Tôi nhận được và nó không thể tìm thấy tập tin R hiển thị dưới đây.

int id = com.android.internal.R.xml.power_profile; 

Cũng không thể nhập

import com.android.internal.util.XmlUtils; 

tôi về cơ bản muốn để đo điện năng tiêu thụ của các thiết bị Android.

Xin cảm ơn trước.

+2

Nếu nó không phải là một phần của API công cộng thì có khả năng nó sẽ không hoạt động hoặc rất khó. Và ngay cả khi bạn quản lý để có được nó làm việc nó có khả năng bất cứ điều gì có nghĩa là bạn sử dụng để làm cho nó hoạt động sẽ bị hỏng tại một số điểm bởi một bản cập nhật hệ điều hành. – FoamyGuy

Trả lời

2

Có bạn có thể truy cập vào API nội bộ mà là com.android.internal.os.PowerProfile

chỉ có một cái nhìn tại this link, và làm theo các bước của quá trình bước.

1

Bạn có thể sử dụng

int id = Resources.getSystem().getIdentifier("power_profile", "xml", "android"); 

Nhưng hãy cẩn thận về những gì FoamyGuy nhận xét.

3

Cá nhân sử dụng android.jar được patach chỉ gây ra đau đầu, sử dụng phản chiếu là cách 'đơn giản' để truy cập PowerProfile.java. Nhưng như @FoamyGuy và vô số người khác đã lưu ý đây là ẩn api để bọc nó trong một thử lớn bắt vì nó có thể phá vỡ trên phiên bản sau của 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

Cách dễ nhất để thực hiện việc này là tải xuống framework.jar của Android và bao gồm thư viện bên ngoài trong dự án của bạn. Sau khi bao gồm framework.jar trong dự án Android của bạn, bạn có thể tìm thấy tệp tài nguyên đó.

Các vấn đề liên quan