Como encontrar o status da conexão VPN por meio de APIs de estrutura ou qualquer outro método eficiente?

Tão longe:

Encontrei as seguintes soluções

Usando o Broadcastreceiver

O receptor de transmissão está obsoleto do ICS

Usando Ping ou Traceroute

Definitivamente vai demorar muito tempo e não é eficiente

Pesquisando alterações no servidor DNS

Definitivamente vai demorar muito tempo e não é eficiente

Usando endereço IP

Mesmo que não demore muito tempo, dependendo da conexão de rede, pode variar

Minha conclusão:

Até agora, todas as soluções que encontrei não são eficientes ou não são tão confiáveis.

Minhas perguntas:

Se a VPN estiver conectada no dispositivo Android, o sistema operacional Android deve estar ciente disso.

Existe alguma API pública de estrutura do Android para lê-lo porque encontrá-lo localmente é a solução mais eficiente e confiável?

Existem outras maneiras eficientes e confiáveis de alcançá-lo (como integrar uma biblioteca C ou C plus plus ao NDK)?

Nota:

Também não encontrei remetentes / AIDL de transmissão personalizados do OpenVPN para Android

questionAnswers(3)

yourAnswerToTheQuestion