Gibt es eine einfache Möglichkeit, benachrichtigt zu werden, wenn USB oder Wechselstrom an ein Android-Telefon angeschlossen ist?Wie erkennt man den Zustand der Stromversorgung?
Antwort
Einen BroadcastReceiver
für ACTION_BATTERY_CHANGED
einrichten. Ein Intent
extra wird Ihnen sagen, was der Ladezustand ist - siehe BatteryManager
für Details.
In AndroidManifest.xml
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".receiver.PlugInControlReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
</intent-filter>
</receiver>
</application>
In-Code
public class PlugInControlReceiver extends BroadcastReceiver {
public void onReceive(Context context , Intent intent) {
String action = intent.getAction();
if(action.equals(Intent.ACTION_POWER_CONNECTED)) {
// Do something when power connected
}
else if(action.equals(Intent.ACTION_POWER_DISCONNECTED)) {
// Do something when power disconnected
}
}
}
Beachten Sie, dass die onReceive() - Methode in der PlugInControlReceiver-Klasse sein sollte, die BroadcastReceiver erweitert. –
Danke für die freundliche Erklärung @OdedBreiner –
aber obige Lösung funktioniert nicht für VIVO und OPPO-Handys –
Eine Sache mehr, müssen Sie prüfen, ob es Fehler in Manifest ist ---> Anwendung. Klicken Sie dann auf das Feld mit dem Fehler und klicken Sie einfach auf den Link "Name" Dann erscheint ein Dialogfeld zum Hinzufügen einer Klasse. fügen Sie die Klasse hinzu und kopieren Sie in der Klasse den Code von on.That ist der obige Code in die Klassendatei nicht die Hauptaktivität kopiert werden. Dank Pzycoderz
ein anderer Weg ist Batteriemanager. dies i verwendbar für api> = 21
public class PowerUtil {
public static boolean isConnected(Context context) {
Intent intent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1);
return plugged == BatteryManager.BATTERY_PLUGGED_AC || plugged == BatteryManager.BATTERY_PLUGGED_USB;
}
}
Hier ist eine weitere Möglichkeit, die Informationen abzufragen:
die Werte hier lesen: ex.
via android shell:
cat /sys/class/power_supply/usb/online
1 = verbunden, 0 = nicht. Reflektiert den USB-Verbindungsstatus.
cat/sys/class/power_supply/ac/Online
1 = verbunden, 0 = nicht. Reflektiert den AC-Verbindungsstatus.
Mit diesen beiden zusammen, denke ich werde sagen, ob das Gerät Strom erhält oder nicht. Nicht sicher, ob der Standort für alle Geräte gleich ist. Fand die Location die selbe auf Android 7+ und 5+, auf einem Samsung Tablet und einem RockChip Gerät.
- 1. Wie erkennt man den Zustand von GIF
- 2. Wie erkennt man den vorherigen Zustand des Textfelds in C#?
- 3. Wie erkennt man den Seitenanfang in WebView?
- 4. Wie erkennt man den "Besitzer" einer Website?
- 5. Wie erkennt man den STAMINA-Modus?
- 6. Wie erkennt man den Blattwechsel eines Benutzers?
- 7. Wie erkennt man den 404-Antwortcode von der IO-Ausnahme?
- 8. Wie erkennt man den Schnittpunkt zweier Bilder während der Animation?
- 9. iOS 9 Wie erkennt man den stillen Modus?
- 10. Wie man Android-Gerät bootet, wenn die Stromversorgung angeschlossen ist?
- 11. Wie erkennt man Anwendungsabstürze?
- 12. Wie erkennt man "Enter" Keypress in Reagenz?
- 13. Wie erkennt man, ob AVAudioRecorder pausiert ist?
- 14. reactjs, wie man Zustand aktualisiert
- 15. Wie erkenne ich den aktuellen Zustand innerhalb der Direktive
- 16. Wie ermittelt man den genauen Zustand eines BufferedReaders?
- 17. Wie kann man den Redux-Zustand richtig verwalten?
- 18. Wie ändert man die UISwitch-Standardfarbe für den OFF-Zustand?
- 19. Wie validiert man den internen Zustand eines Objekts?
- 20. Wie man den Zustand in Python ohne Klassen erhält?
- 21. Gnuradio: Wie erkennt man den Peak einer FFT-Kurve?
- 22. Wie erkennt man den Benutzer, der auf iOS eine Mikrofonberechtigung erteilt?
- 23. Wie erkennt man den Facebook In-App Browser?
- 24. Navigationsschublade: Wie erkennt man den aktuell ausgewählten Artikel?
- 25. Wie man den Benutzer im Kinect SDK 2.0 dynamisch erkennt
- 26. Wie erkennt man eine kreisförmige Geste über den Gestenerkenner?
- 27. Wie erkennt man den Typ eines Objekts in einer Liste?
- 28. Wie erkennt man, wenn eine Seite den Vollbildmodus beendet?
- 29. Wie erkennt man den Azure Storage-Typ mit SDK?
- 30. Wie erkennt man den BackView-Knopf von SearchView?
Danke! Es gibt keine Möglichkeit, nach diesen Informationen zu fragen? – NPike
@NPike: siehe die Kommentare zu dieser [akzeptierte Antwort] (http://stackoverflow.com/questions/3997289/get-temperature-of-battery-on-android/3997349#3997349) für eine andere Frage - man kann das bekommen aktueller Zustand mit der dort gezeigten Methode ohne Abonnement. –
Tu genau sein: Intent ix = main.registerReceiver (null, neuer IntentFilter (Intent.ACTION_BATTERY_CHANGED)); \t \t \t \t Boolesch gestopft = ix! = Null && ix.getIntExtra ("verstopft", 0)! = 0; – mdiener