Android VPN没有连接更改?
当连接或断开VPN时,是否有方法获得通知?因为我所看到的,ConnectionManager没有广播任何关于这方面的意图 我还尝试(未成功)注册到隐藏的ACTION_VPN_连接广播(如android.net.VPN.VpnManager.java源代码所示): registerReceiver(新的BroadcastReceiver() { 公共void onReceive(上下文、意图) { android.util.Log.d(“MyApp”,“接收VPN广播”); } },新的IntentFilter(“vpn.connectivity”);//VpnManager.ACTION\u VPN\u连接 那么,除了定期轮询网络接口以检测新网络接口(通常为ppp0)的创建之外,还有没有一种方法可以检测VPN是否已连接 致以最良好的祝愿,Android VPN没有连接更改?,android,Android,当连接或断开VPN时,是否有方法获得通知?因为我所看到的,ConnectionManager没有广播任何关于这方面的意图 我还尝试(未成功)注册到隐藏的ACTION_VPN_连接广播(如android.net.VPN.VpnManager.java源代码所示): registerReceiver(新的BroadcastReceiver() { 公共void onReceive(上下文、意图) { android.util.Log.d(“MyApp”,“接收VPN广播”); } },新的Inten
David我试着收听你提到的“vpn.connectivity”事件,它在我的NexusOne(Android 2.3.3)上确实起了作用。我不知道这是否有什么不同,但我在清单中注册了接收器,而不是在运行时注册。sgs2和emulator使用:
getApplicationContext().registerReceiver(new BroadcastReceiver()
{
public void onReceive(Context context, Intent intent)
{
logger.Log("VPN broadcast "+context.toString()+": ["+intent.toString()+"]");
}
}, new IntentFilter("vpn.connectivity"));
您应该使用以下示例:
<service android:name=".ExampleVpnService"
android:permission="android.permission.BIND_VPN_SERVICE">
<intent-filter>
<action android:name="android.net.VpnService"/>
</intent-filter>
一个快速更新,说明Android 4.0(ICS)中不再存在“vpn.connectivity”。
<service android:name=".ExampleVpnService"
android:permission="android.permission.BIND_VPN_SERVICE">
<intent-filter>
<action android:name="android.net.VpnService"/>
</intent-filter>