В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Я полагаю, что можно проверить SystemInformation. PowerStatus, чтобы видеть, находится ли это на батарее или нет.
Boolean isRunningOnBattery =
(System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus ==
PowerLineStatus.Offline);
Редактирование: В дополнение к вышеупомянутому существует также Система. Windows. Формы. класс PowerStatus . Один из его методов PowerLineStatus, который будет равняться PowerLineStatus. Онлайн, если это находится на питании переменным током.
R. Bemrose нашел управляемый вызов. Вот некоторый пример кода:
/// <summary>
/// Indicates if we're running on battery power.
/// If we are, then disable CPU wasting things like animations, background operations, network, I/O, etc
/// </summary>
public static Boolean IsRunningOnBattery
{
get
{
PowerLineStatus pls = System.Windows.Forms.SystemInformation.PowerStatus.PowerLineStatus;
//Offline means running on battery
return (pls == PowerLineStatus.Offline);
}
}
Вы могли использовать функцию GetSystemPowerStatus, использующую P/Invoke. См.: http://msdn.microsoft.com/en-gb/library/aa372693.aspx
Вот пример:
using System;
using System.Runtime.InteropServices;
namespace PowerStateExample
{
[StructLayout(LayoutKind.Sequential)]
public class PowerState
{
public ACLineStatus ACLineStatus;
public BatteryFlag BatteryFlag;
public Byte BatteryLifePercent;
public Byte Reserved1;
public Int32 BatteryLifeTime;
public Int32 BatteryFullLifeTime;
// direct instantation not intended, use GetPowerState.
private PowerState() {}
public static PowerState GetPowerState()
{
PowerState state = new PowerState();
if (GetSystemPowerStatusRef(state))
return state;
throw new ApplicationException("Unable to get power state");
}
[DllImport("Kernel32", EntryPoint = "GetSystemPowerStatus")]
private static extern bool GetSystemPowerStatusRef(PowerState sps);
}
// Note: Underlying type of byte to match Win32 header
public enum ACLineStatus : byte
{
Offline = 0, Online = 1, Unknown = 255
}
public enum BatteryFlag : byte
{
High = 1, Low = 2, Critical = 4, Charging = 8,
NoSystemBattery = 128, Unknown = 255
}
// Program class with main entry point to display an example.
class Program
{
static void Main(string[] args)
{
PowerState state = PowerState.GetPowerState();
Console.WriteLine("AC Line: {0}", state.ACLineStatus);
Console.WriteLine("Battery: {0}", state.BatteryFlag);
Console.WriteLine("Battery life %: {0}", state.BatteryLifePercent);
}
}
}
Вы могли использовать WMI (инструментарий управления Windows) для запросов операционной системы о состоянии батареи.
Вы могли найти больше информации здесь:
Hope, которая помогает.
Я не полагаю, что это представлено в управляемом коде, но можно использовать Win32 GetSystemPowerStatus через pinvoke для получения этой информации
Как в стороне, можно хотеть рассмотреть использование GetCurrentPowerPolicies или подобный для определения пользовательских предпочтений, касающихся производительности/управления питанием.