मुझे विंडोज सिस्टम में शेष बैटरी जीवन प्राप्त करने की आवश्यकता है। मैं यह कैसे कर सकता हूं?विंडोज सिस्टम में शेष बैटरी जीवन कैसे प्राप्त करें?
उत्तर
मुझे लगता है कि आप एक लैपटॉप के बारे में बात कर रहे हैं। मानक जावा एसई एपीआई में ऐसी कोई एपीआई मौजूद नहीं है। यह जानकारी केवल ऑपरेटिंग सिस्टम प्लेटफार्म देशी एपीआई में उपलब्ध है। प्लेटफार्म देशी एपीआई के साथ संवाद करने में सक्षम होने के लिए आपको कम से कम JNI या JNA(JavaWorld article) की आवश्यकता होगी।
विंडोज़ में, आप SYSTEM_POWER_STATUS
structure पर हुक करना चाहते हैं। यह दूसरों के बीच BatteryLifePercent
संपत्ति प्रदान करता है जो आपकी रुचि का हो सकता है। मुझे एक पुराने jums आधारित कोड स्निपेट को पुराने forums.sun.com विषय में मिला जो वर्तमान में अब उपलब्ध नहीं है। तो क्रेडिट वास्तव में उस लेखक को जाता है जिसका नाम ज्ञात नहीं होगा।
package com.example;
import java.util.ArrayList;
import java.util.List;
import com.sun.jna.Native;
import com.sun.jna.Structure;
import com.sun.jna.win32.StdCallLibrary;
public interface Kernel32 extends StdCallLibrary {
public Kernel32 INSTANCE = (Kernel32) Native.loadLibrary("Kernel32", Kernel32.class);
/**
* @see http://msdn2.microsoft.com/en-us/library/aa373232.aspx
*/
public class SYSTEM_POWER_STATUS extends Structure {
public byte ACLineStatus;
public byte BatteryFlag;
public byte BatteryLifePercent;
public byte Reserved1;
public int BatteryLifeTime;
public int BatteryFullLifeTime;
@Override
protected List<String> getFieldOrder() {
ArrayList<String> fields = new ArrayList<String>();
fields.add("ACLineStatus");
fields.add("BatteryFlag");
fields.add("BatteryLifePercent");
fields.add("Reserved1");
fields.add("BatteryLifeTime");
fields.add("BatteryFullLifeTime");
return fields;
}
/**
* The AC power status
*/
public String getACLineStatusString() {
switch (ACLineStatus) {
case (0): return "Offline";
case (1): return "Online";
default: return "Unknown";
}
}
/**
* The battery charge status
*/
public String getBatteryFlagString() {
switch (BatteryFlag) {
case (1): return "High, more than 66 percent";
case (2): return "Low, less than 33 percent";
case (4): return "Critical, less than five percent";
case (8): return "Charging";
case ((byte) 128): return "No system battery";
default: return "Unknown";
}
}
/**
* The percentage of full battery charge remaining
*/
public String getBatteryLifePercent() {
return (BatteryLifePercent == (byte) 255) ? "Unknown" : BatteryLifePercent + "%";
}
/**
* The number of seconds of battery life remaining
*/
public String getBatteryLifeTime() {
return (BatteryLifeTime == -1) ? "Unknown" : BatteryLifeTime + " seconds";
}
/**
* The number of seconds of battery life when at full charge
*/
public String getBatteryFullLifeTime() {
return (BatteryFullLifeTime == -1) ? "Unknown" : BatteryFullLifeTime + " seconds";
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("ACLineStatus: " + getACLineStatusString() + "\n");
sb.append("Battery Flag: " + getBatteryFlagString() + "\n");
sb.append("Battery Life: " + getBatteryLifePercent() + "\n");
sb.append("Battery Left: " + getBatteryLifeTime() + "\n");
sb.append("Battery Full: " + getBatteryFullLifeTime() + "\n");
return sb.toString();
}
}
/**
* Fill the structure.
*/
public int GetSystemPowerStatus(SYSTEM_POWER_STATUS result);
}
यहां बताया गया है कि आप इसे उपयोग कर सकते हैं, उदाहरण के लिए:
यह काम करने के लिए, पहली classpath में jna.jar
ड्रॉप और फिर अपने प्रोजेक्ट में निम्नलिखित वर्ग असंशोधित नकल प्राप्त करने के लिए अपने main()
विधि में: कोई
ACLineStatus: Offline Battery Flag: High, more than 66 percent Battery Life: 82% Battery Left: 2954 seconds Battery Full: Unknown
(नहीं,:
ACLineStatus: Online Battery Flag: High, more than 66 percent Battery Life: 100% Battery Left: Unknown Battery Full: Unknown
और 10 मिनट के लिए एसी बंद प्लग के बाद:
Kernel32.SYSTEM_POWER_STATUS batteryStatus = new Kernel32.SYSTEM_POWER_STATUS();
Kernel32.INSTANCE.GetSystemPowerStatus(batteryStatus);
System.out.println(batteryStatus); // Shows result of toString() method.
यह प्रिंट सफलतापूर्वक मेरे अक्षांश E5500 पर निम्न खराब बैटरी, मैं बस एक फिल्म संकलित कर रहा हूं और लगातार वाईफ़ाई पर लगातार स्थानांतरित कर रहा हूं;))
'संरचना भरें' यह सब दिखाने के लिए मुख्य तरीका है? –
@LittleChild: नहीं, यह नीचे दिए गए कोड का ब्लॉक है "यहां आप इसका उपयोग कैसे कर सकते हैं"। बस उन पंक्तियों को अपने 'मुख्य() 'में कॉपी करें। आपको 'कर्नेल 32' इंटरफ़ेस/कक्षा को संपादित करने की आवश्यकता नहीं है (यदि आवश्यक हो तो पैकेज की अपेक्षा, लेकिन यह स्पष्ट से अधिक कुछ नहीं है)। – BalusC
उदाहरण प्राप्त करें बैटरीफ्लैगस्ट्रिंग() विधि थोड़ा भ्रामक हो सकती है क्योंकि संदर्भित दस्तावेज़ों में कहा गया है कि बैटरीफ्लैग में "निम्न में से एक या अधिक झंडे हो सकते हैं।" 1, 2, 4, 8, 128, और 255 सूचीबद्ध होने के साथ। ध्वज 255 नहीं होने पर प्रत्येक मान के लिए "bitwise और" का उपयोग करने के लिए एक और अधिक विश्वसनीय दृष्टिकोण हो सकता है। हालांकि, "चार्जिंग" मान (8) शायद एकमात्र चीज है जिसे आप कभी भी 1, 2, या 4 के साथ देखेंगे। –
- 1. एसडीके में एंड्रॉइड बैटरी
- 2. मैक ओएस एक्स मैकबुक के बैटरी जीवन को प्रोग्रामिक रूप से कैसे प्राप्त करें?
- 3. विंडोज फोन 8 डिवाइस में बैटरी स्तर प्राप्त करना?
- 4. स्मृति उपयोग बैटरी जीवन को कैसे प्रभावित करता है?
- 5. एंड्रॉइड फोन से शेष बैटरी समय उपलब्ध कराएं
- 6. क्या एंड्रॉइड प्रसारण रिसीवर बैटरी जीवन का उपभोग करते हैं?
- 7. कोको में सिस्टम लोकेल और सिस्टम भाषा कैसे प्राप्त करें
- 8. शेष उपलब्ध स्मृति को मानक C++ 11 में प्राप्त करें?
- 9. विंडोज सिस्टम
- 10. विंडोज 7 में "अस्थायी फ़ोल्डर" कैसे प्राप्त करें?
- 11. सिस्टम में स्थापित अनुप्रयोग प्राप्त करें
- 12. शेष चयन में शेष नीला रंग :: चयन?
- 13. एंड्रॉइड सिस्टम कलर्स कैसे प्राप्त करें
- 14. वर्तमान सिस्टम समय प्राप्त करें
- 15. सिस्टम वॉल्यूम आईओएस प्राप्त करें
- 16. सी # (विंडोज ऐप) में स्थानीय सिस्टम से फाइल को अन्य सिस्टम में कैसे कॉपी करें?
- 17. समय चार्ज होने में शेष, पूरा हो गया है आईओएस
- 18. बैटरी स्तर प्राप्त करने के लिए Intent.ACTION_BATTERY_CHANGED
- 19. सिस्टम डिफ़ॉल्ट फ़ॉन्ट प्राप्त करें
- 20. फ़ाइल सिस्टम प्रतिबंध प्राप्त करें
- 21. वर्तमान सिस्टम समय प्राप्त करें?
- 22. टेपेस्ट्री + शेष
- 23. चींटी में सिस्टम उपयोगकर्ता कैसे प्राप्त करें (ग्रहण के भीतर)?
- 24. जावा में उपयोगी सिस्टम जानकारी कैसे प्राप्त करें?
- 25. डिस्क फाइल सिस्टम के बारे में जानकारी कैसे प्राप्त करें?
- 26. विंडोज सत्रों की सूची कैसे प्राप्त करें?
- 27. विंडोज 8 लाइव आईडी कैसे प्राप्त करें
- 28. php_phar.dll कैसे प्राप्त करें? विंडोज पर
- 29. विंडोज 7 थीम नाम कैसे प्राप्त करें
- 30. एप्लिकेशन द्वारा एंड्रॉइड बैटरी उपयोग के बारे में जानकारी कैसे प्राप्त करें
आपका मतलब है बैटरी की ताकत? इसके अलावा, विंडोज का क्या संस्करण? –
क्या यह ओएस स्वतंत्र नहीं होना चाहिए? – thelost