VPN没有连接变化?
有没有办法在VPN连接或断开连接时收到通知 ? 由于我所看到的,ConnectivityManager不会传播任何有关这方面的意图。
我也尝试(不成功)注册到隐藏的ACTION_VPN_CONNECTIVITY广播(如在android.net.vpn.VpnManager.java源代码中所见):
    context.registerReceiver(new BroadcastReceiver()
        {
            public void onReceive(Context context, Intent intent)
            {
                android.util.Log.d("MyApp", "Received VPN broadcast.");
            }
        }, new IntentFilter("vpn.connectivity")); // VpnManager.ACTION_VPN_CONNECTIVITY
那么有没有办法检测VPN是否连接,除了定期轮询网络接口以检测新网络接口(通常为ppp0)的创建?
最好的问候,大卫
sgs2和模拟器一起工作:
    getApplicationContext().registerReceiver(new BroadcastReceiver()
    {
        public void onReceive(Context context, Intent intent)
        {
            logger.Log("VPN broadcast "+context.toString()+": ["+intent.toString()+"]");
        }
    }, new IntentFilter("vpn.connectivity"));
我试着听你提到的“vpn.connectivity”事件,它在我的Nexus One上运行(Android 2.3.3)。 我不知道它是否有任何区别,但我将接收器注册到清单中,而不是在运行时进行。
你应该使用这个例子:
 <service android:name=".ExampleVpnService"
     android:permission="android.permission.BIND_VPN_SERVICE">
 <intent-filter>
     <action android:name="android.net.VpnService"/>
 </intent-filter>
上一篇: No connectivity change with VPN?
下一篇: MVC, MVA, MVP, MVVM?
