2013-05-06 108 views
0

我试图让一个应用程序,和我有一些问题我解决不了现在:连接到WiFi网络编程

我的应用程序必须与指定名称连接到一个特定的AP和显示IP网关。我试图做的是,当应用程序启动时,它会检查WiFi模块是否启用。如果不是,则启用它并连接到AP。如果已启用,请检查它是否已连接到正确的AP,如果没有,请连接到此处。

因此,现在我做了:

启用wifi部分。这是通过名为enableWifi()的AlertDialog调用的函数(How to enable/disable WiFi from an application?

设置WiFi网络信息并在那里连接。它也是一个通过名为setupWiFi()的AlertDialog调用的函数(How and what to set to Android WifiConfiguration.preSharedKey to connect to the WPA2 PSK WiFi network

获取IP网关。这是一个名为setIP()的函数。这会在EditText视图中写入de IP。 (Programmatically getting the gateway and subnet mask details

有连接到AP的方法有两种:

1)启用WiFi - >连接到AP

2)连接到AP

所以来这里的问题:当我启用WiFi模块,我应该等待完成启用连接到AP的启用,然后等待完成连接以检索网关IP。我不知道如何去做那些“等待”的部分。我现在的应用程序现在如果我在2)连接到AP并获得当前网络的网关,该网络仍然是旧的和我们不想要的。

我试过线程如的AsyncTask和线程,但不能使它工作...

感谢您的阅读,我希望这是很容易解决!

亲切的问候, 劳尔苏亚雷斯

回答

2

你可以听的动作(ConnectivityManager.CONNECTIVITY_ACTION),并确定是否已连接到活动的网络或没有。

IntentFilter filter = new IntentFilter(); 
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 

此外,您可以检查网络类型当前处于活动状态(Type_WIFI,Type_MOBILE)。 使用此意图过滤器实现广播接收器,并在接收器的onReceive()方法中执行您的任务。

相关问题