netdiag-app/native-plugin
Eduard Wisch d2df3ee929
All checks were successful
Build APK / build-apk (push) Successful in 1m47s
Neues Werkzeug: Geräte-Monitor (Dauerüberwachung) [apk]
Für das Kamera-Problem: mehrere Geräte auswählen und ihre Erreichbarkeit
über längere Zeit überwachen — jeder Ausfall wird mit Uhrzeit protokolliert.

- MonitorService: schlanker Vordergrund-Dienst, hält den Prozess am Leben,
  damit die Überwachung bei Display aus / App-Wechsel weiterläuft
- Plugin startMonitor/stopMonitor/getMonitorStatus: pingt die Geräte im
  gewählten Intervall, Wechsel erreichbar↔weg erzeugt ein monitorEvent;
  WifiLock gegen WLAN-Schlaf, Heads-up-Benachrichtigung bei Ausfall
- Monitor-Seite (protokoll/[id]/monitor): Geräte-Mehrfachauswahl,
  Intervallwahl, Live-Ereignisliste, frühere Überwachungen mit Ausfallzahl
- Überwachung läuft beim Verlassen der Seite weiter; Rückkehr nimmt den
  Stand wieder auf (getMonitorStatus)
- Manifest: MonitorService + FOREGROUND_SERVICE_DATA_SYNC, POST_NOTIFICATIONS
- Kachel "Geräte-Monitor" im Werkzeuge-Raster

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 23:12:26 +02:00
..
MonitorService.kt Neues Werkzeug: Geräte-Monitor (Dauerüberwachung) [apk] 2026-05-19 23:12:26 +02:00
NetDiagScannerPlugin.kt Neues Werkzeug: Geräte-Monitor (Dauerüberwachung) [apk] 2026-05-19 23:12:26 +02:00
README.md Initiales Commit — NetDiag App vollständig implementiert [apk] 2026-05-19 12:01:56 +02:00
Snmp.kt Initiales Commit — NetDiag App vollständig implementiert [apk] 2026-05-19 12:01:56 +02:00

Natives Scan-Plugin NetDiagScanner

Der WebView kann keine Raw-Sockets/ICMP/ARP — die eigentliche Netzwerk-Messung läuft in diesem nativen Android-Plugin (Kotlin).

Dateien

  • NetDiagScannerPlugin.kt — Capacitor-Plugin mit allen Scan-Methoden
  • Snmp.kt — minimaler SNMP-v2c-GET-Client

Integration (einmalig, nach npx cap add android)

  1. Android-Projekt erzeugen (falls noch nicht vorhanden):

    npm install
    npm run build
    npx cap add android
    
  2. Plugin-Dateien kopieren nach:

    android/app/src/main/java/de/data_it_solution/netdiag/
    ├── NetDiagScannerPlugin.kt
    └── Snmp.kt
    
  3. Plugin registrieren in android/app/src/main/java/de/data_it_solution/netdiag/MainActivity.kt:

    package de.data_it_solution.netdiag
    
    import android.os.Bundle
    import com.getcapacitor.BridgeActivity
    
    class MainActivity : BridgeActivity() {
      override fun onCreate(savedInstanceState: Bundle?) {
        registerPlugin(NetDiagScannerPlugin::class.java)
        super.onCreate(savedInstanceState)
      }
    }
    
  4. Berechtigungen in android/app/src/main/AndroidManifest.xml (innerhalb <manifest>):

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    

    ACCESS_FINE_LOCATION ist Pflicht, damit Android WLAN-Scan-Ergebnisse liefert.

  5. Kotlin-Coroutines sicherstellen — in android/app/build.gradle:

    dependencies {
        implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0"
    }
    

Bekannte Einschränkungen

  • ARP/MAC: /proc/net/arp ist ab Android 10 teils nicht mehr lesbar — dann bleiben MAC/Hersteller leer; Geräte werden trotzdem über Ping/Hostname erkannt.
  • Hersteller-Lookup: nur kleiner OUI-Auszug eingebaut. Für volle Abdeckung die IEEE-OUI-Datei als Asset einbinden und in ouiVendor() nutzen.
  • DHCP-Discover: Best-effort — Port 68 kann vom System-DHCP-Client belegt sein.
  • Durchsatz-Test: benötigt eine TCP-Sink/Source-Gegenstelle (2. Gerät bzw. iperf3-kompatibler Server). Misst sonst nur Fehlversuche.
  • Stresstest: für lange Läufe sollte ein Foreground-Service ergänzt werden, sonst kann Android den Prozess im Hintergrund beenden.
  • PoE-/Strommessung: bewusst nicht enthalten (Hardware-Grenze) — späteres Modul.