Wie kann der Status der VPN-Verbindung über Framework-APIs oder eine andere effiziente Methode ermittelt werden?

Bisher:

Ich habe die folgenden Lösungen gefunden

Broadcastreceiver verwenden

Der Rundfunkempfänger ist vom ICS veraltet

Verwenden von Ping oder Traceroute

Es wird definitiv viel Zeit in Anspruch nehmen und es ist nicht effizient

Abfrage nach DNS-Serveränderungen

Es wird definitiv viel Zeit in Anspruch nehmen und es ist nicht effizient

IP-Adresse verwenden

Auch wenn es abhängig von der Netzwerkverbindung nicht viel Zeit in Anspruch nimmt, kann es variieren

Meine Schlussfolgerung:

Bisher sind alle Lösungen, die ich gefunden habe, entweder nicht effizient oder nicht so zuverlässig.

Meine Fragen:

Wenn VPN in Android-Gerät verbunden ist, muss Android-Betriebssystem davon Kenntnis haben.

Gibt es öffentliche Android-Framework-APIs, die es lesen können, weil es die effizienteste und zuverlässigste Lösung ist, es lokal zu finden?

Gibt es andere effiziente und zuverlässige Möglichkeiten, dies zu erreichen (wie die Integration einer C- oder C plus plus-Bibliothek in NDK)?

Hinweis:

Ich konnte auch keine benutzerdefinierten Broadcast-Sender / AIDL von OpenVPN für Android finden

Antworten auf die Frage(3)

Ihre Antwort auf die Frage