Có cách nào để lấy thông tin về pin từ SDK Android không? Chẳng hạn như tuổi thọ pin còn lại và như vậy? Tôi không thể tìm thấy nó thông qua các tài liệu.Pin Android trong SDK
Trả lời
Bạn có thể đăng ký bộ nhận Intent để nhận chương trình phát sóng cho ACTION_BATTERY_CHANGED: http://developer.android.com/reference/android/content/Intent.html#ACTION_BATTERY_CHANGED. Các tài liệu nói rằng chương trình phát sóng bị dính, vì vậy bạn sẽ có thể lấy nó ngay cả sau khi thay đổi trạng thái pin xảy ra.
Dưới đây là ví dụ nhanh giúp bạn biết lượng pin được sử dụng, điện áp pin và nhiệt độ của pin.
Dán đoạn mã sau vào một hoạt động:
@Override
public void onCreate() {
BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
int scale = -1;
int level = -1;
int voltage = -1;
int temp = -1;
@Override
public void onReceive(Context context, Intent intent) {
level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
temp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1);
voltage = intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1);
Log.e("BatteryManager", "level is "+level+"/"+scale+", temp is "+temp+", voltage is "+voltage);
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
}
Trên điện thoại của tôi, điều này có đầu ra sau mỗi 10 giây:
ERROR/BatteryManager(795): level is 40/100 temp is 320, voltage is 3848
Vì vậy, điều này có nghĩa rằng pin là 40% đầy đủ, có nhiệt độ 32,0 độ C, và có điện áp 3,848 Volts.
Đây là một ví dụ tuyệt vời, nhưng tại sao bạn đăng nhập vào mức "lỗi"? – GetUsername
@GetUsername Không có lý do cụ thể cho việc ghi nhật ký mức lỗi khác với tùy chọn cá nhân. Đối với đăng nhập như thế này mà tôi loại bỏ trước khi xuất bản ứng dụng của tôi, tôi muốn đăng nhập ở mức độ lỗi vì vậy nó rất dễ dàng để xem đăng nhập trong biển của đầu ra logcat. – plowman
Tôi cần có màn hình trên pin và kiểm tra Cấp độ và trạng thái. Tôi đang phát triển trên MonoForAndroid, vì vậy đây là những gì tôi đã đưa ra. Tôi đặt nó ở đây trong trường hợp ai đó có một yêu cầu tương tự. (Tôi đã thử nghiệm này và hoạt động độc đáo).
try
{
var ifilter = new IntentFilter(Intent.ActionBatteryChanged);
Intent batteryStatusIntent = Application.Context.RegisterReceiver(null, ifilter);
var batteryChangedArgs = new AndroidBatteryStateEventArgs(batteryStatusIntent);
_Battery.Level = batteryChangedArgs.Level;
_Battery.Status = batteryChangedArgs.BatteryStatus;
}
catch (Exception exception)
{
ExceptionHandler.HandleException(exception, "BatteryState.Update");
throw new BatteryUpdateException();
}
namespace Leopard.Mobile.Hal.Battery
{
public class AndroidBatteryStateEventArgs : EventArgs
{
public AndroidBatteryStateEventArgs(Intent intent)
{
Level = intent.GetIntExtra(BatteryManager.ExtraLevel, 0);
Scale = intent.GetIntExtra(BatteryManager.ExtraScale, -1);
var status = intent.GetIntExtra(BatteryManager.ExtraStatus, -1);
BatteryStatus = GetBatteryStatus(status);
}
public int Level { get; set; }
public int Scale { get; set; }
public BatteryStatus BatteryStatus { get; set; }
private BatteryStatus GetBatteryStatus(int status)
{
var result = BatteryStatus.Unknown;
if (Enum.IsDefined(typeof(BatteryStatus), status))
{
result = (BatteryStatus)status;
}
return result;
}
}
}
#region Internals
public class AndroidBattery
{
public AndroidBattery(int level, BatteryStatus status)
{
Level = level;
Status = status;
}
public int Level { get; set; }
public BatteryStatus Status { get; set; }
}
public class BatteryUpdateException : Exception
{
}
#endregion
public static String batteryLevel(Context context)
{
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100);
int percent = (level*100)/scale;
return String.valueOf(percent) + "%";
}
- 1. nhận mức pin ở widget android
- 2. Cách lấy Thống kê Pin trong Android khi chạy?
- 3. Mô phỏng pin yếu và bộ nhớ thấp trong Android
- 4. Hỗ trợ SDK Firebase cho Android SDK?
- 5. Mức pin trên Phonegap
- 6. dual sim android sdk
- 7. Mã nguồn Android SDK
- 8. Lỗi Android SDK
- 9. Android SDK MMS
- 10. Android IntelliJ sdk version
- 11. dx.jar trong SDK Android là gì?
- 12. Apache HttpClient mới nhất trong SDK Android
- 13. RectF và RectF trong SDK Android
- 14. Cách tháo biểu tượng pin trên thanh trạng thái android?
- 15. Trạng thái pin trong OSX?
- 16. Tiện ích nhập mã pin tùy chỉnh Android
- 17. Facebook sdk android 3.0 SSO
- 18. Cách nhận thông tin về mức sử dụng pin Android theo ứng dụng
- 19. Android Studio SDK vấn đề
- 20. Android Share - Facebook SDK - ShareActionProvider
- 21. Thiết JAVA_HOME tại Android SDK
- 22. tải xuống các thành phần SDK Android mà không có trình quản lý SDK Android
- 23. Không thể tìm thấy sdk android 2.3.4 trong trình quản lý SDK
- 24. cách đo và cải thiện việc sử dụng pin trong trò chơi iPhone/iPad (Android cũng)
- 25. Làm cách nào để chọn đúng camera để bật đèn pin, trong Android 2.2?
- 26. Phát hiện Thay đổi trạng thái pin ở mọi tỷ lệ phần trăm trong android
- 27. Làm thế nào để mô phỏng pin yếu trong các thiết bị Android
- 28. Android SDK WebView gọi Hoạt động
- 29. gcc -x objective-c với Android SDK
- 30. SDK nền tảng Android nào tôi cần?
Bạn có thể đăng một số mã mẫu cho điều này không. Tôi không chắc chắn làm thế nào để nhận được một mục đích phát sóng. –