【问题标题】:Get VPN Connection status on Android在 Android 上获取 VPN 连接状态
【发布时间】:2011-03-28 13:54:00
【问题描述】:

是否可以检查 Android 设备是否连接到 VPN 服务器? A search in the API 为 Android 1.6 提供了“paltform Highlights”,所以这并没有让我充满信心。

【问题讨论】:

  • 任何人都可以对上述查询有所了解。我还需要获取 VPN 状态。但我发现 API 是隐藏的。任何建议我们如何访问这些 API
  • 这个以前的答案看起来像你需要的:stackoverflow.com/a/34115721/5094121

标签: android vpn


【解决方案1】:

您可以注册到 broadcastreceiver,所有 vpn 状态都会出现在您的应用程序中。

将此添加到应用程序清单:

<receiver android:name=".ConnectivityReceiver">
  <intent-filter>
    <action android:name="vpn.connectivity" />
  </intent-filter>
</receiver>

创建一个类:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class ConnectivityReceiver extends BroadcastReceiver 
{
  public void onReceive(Context c, Intent intent) 
  {
    String state = intent.getSerializableExtra("connection_state").toString();

    Log.d("**************", state.toString());

    if (state.equals("CONNECTING")) {
      // Do what needs to be done
    }
    else if (state.equals("CONNECTED")) {
      // Do what needs to be done
    }
    else if (state.equals("IDLE")) {
      int errorCode = intent.getIntExtra("err", 0);
      if (errorCode != 0) {
        // Do what needs to be done to report a failure
      }
      else {
        // Normal disconnect
      }
    }
    else if (state.equals("DISCONNECTING")) {
      // Usually not very interesting
    }
  }
}

【讨论】:

  • 我不再需要这个了,但感谢您的回答!我没有时间测试它,但我相信你。
  • 解决方案无法在Android 4.0+上运行,我看了Android源码,没有这样的vpn.connectivity广播了……
  • 那么最新的解决方案是什么?
猜你喜欢
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 2012-06-06
  • 2011-08-14
  • 2019-06-26
  • 2017-08-30
  • 2014-09-29
  • 1970-01-01
相关资源
最近更新 更多