UWP-App Akkuinformationen aktualisieren

  • WPF

    UWP-App Akkuinformationen aktualisieren

    Hallo Leute,

    ich bin Anfänger und würde gerne eine kleine App für mein Handy programmieren, die mir Infos zum Akku anzeigt. Bitte schlagt nicht die Hände über dem Kopf zusammen wenn ihr meinen Code seht, da ich noch am lernen bin. Da ich vorher schon mal ein bisschen mit VB6 gespielt hatte, hab ich mich dazu entschlossen die App auf .Net Basis zu schreiben.

    Meine kleine App funktioniert soweit, dass ich alle Infos zum Akku angezeigt bekomme.
    Was mir fehlt ist zum einen die Statusänderung in der laufenden App. Ich habe gelesen, dass die Oberfläche mittels dispatcher aktualisiert werden muss. Aber leider bekomm ich es nicht zum laufen.
    Mit dispatcher.invoke sollte es eigentlich funktionieren, wie ich gelesen habe. Aber nach dispatcher. schlägt er mir kein invoke vor.
    Zum anderen weiß ich nicht ob ich das mit dem EventHandler richtig gemacht habe. Dieser soll meine Oberfläche aktualisieren, wenn sich der Akku-Zustand ändert.
    Ich habe bereits Stunden damit verbracht und mich versucht einzulesen, aber ich komme nicht drauf wie es richtig ist.

    Anleitung die ich nutze: msdn.microsoft.com/de-de/libra…s/apps/xaml/mt227653.aspx

    VB.NET-Quellcode

    1. Imports Windows.Devices.Power
    2. Public NotInheritable Class MainPage
    3. Inherits Page
    4. 'Ist das richtig?#################################
    5. Public Event ReportUpdated As TypedEventHandler(Of Battery, Object)
    6. '#################################################
    7. Public Sub New()
    8. InitializeComponent()
    9. App_befuellen()
    10. End Sub
    11. Public Sub App_befuellen()
    12. Dim batterie = Battery.AggregateBattery
    13. Dim report = batterie.GetReport
    14. Dim Prozent As Double
    15. Dim ReCa As Double
    16. Dim ChRa As Double
    17. Prozent = ((Convert.ToDouble(report.RemainingCapacityInMilliwattHours)) _
    18. / (Convert.ToDouble(report.FullChargeCapacityInMilliwattHours)) * 100)
    19. Prozent = Math.Round(Prozent, 1)
    20. If (Prozent >= 0 And Prozent <= 100) Then
    21. ProgressAkku.Minimum = 0
    22. ProgressAkku.Maximum = 100
    23. ProgressAkku.Value = Prozent
    24. End If
    25. ReCa = Convert.ToDouble(report.RemainingCapacityInMilliwattHours)
    26. ChRa = Convert.ToDouble(report.FullChargeCapacityInMilliwattHours)
    27. textBlock_Prozent.Text = Prozent & " %"
    28. textBlock_VL2.Text = Math.Round(ReCa, 2)
    29. textBlock_LG2.Text = Math.Round(ChRa, 2)
    30. If report.Status = 1 Then
    31. textBlock_LZ2.Text = "Nein"
    32. End If
    33. If report.Status = 3 Then
    34. textBlock_LZ2.Text = "Ja"
    35. End If
    36. End Sub
    37. 'Ist das richtig?#################################
    38. Private Sub MainPage_ReportUpdated(sender As Battery, args As Object) _
    39. Handles Me.ReportUpdated
    40. textBlock_LZ2.Text = "Test"
    41. End Sub
    42. '###############################
    43. End Class


    Kann mir von euch jemand Tipps geben und mir das Wochenende retten? :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „volzim“ ()