16
我有一个小程序,试图连接到一个wifi网络。 它启用设备上的wifi,然后如果它是第一次连接到某个网络,它会加载设备wifi以选择并添加连接密码。 直到我添加密码才能连接程序不应该完成。 如何添加一些东西,等到我从连接的WiFi管理器中获取? 我尝试睡眠,但它冻结了应用程序,并没有得到WiFi弹出菜单连接? 还有其他方法吗?等到wifi连接到android
我有一个小程序,试图连接到一个wifi网络。 它启用设备上的wifi,然后如果它是第一次连接到某个网络,它会加载设备wifi以选择并添加连接密码。 直到我添加密码才能连接程序不应该完成。 如何添加一些东西,等到我从连接的WiFi管理器中获取? 我尝试睡眠,但它冻结了应用程序,并没有得到WiFi弹出菜单连接? 还有其他方法吗?等到wifi连接到android
我在一个月前为您的问题找到了解决方案,只需使用Thread put方法isConnected()即可。
在这种情况下,我使用WifiExplorerActivity来显示所有WiFi网络并允许用户连接到它。
Thread t = new Thread() {
@Override
public void run() {
try {
//check if connected!
while (!isConnected(WifiExplorerActivity.this)) {
//Wait to connect
Thread.sleep(1000);
}
Intent i = new Intent(WifiExplorerActivity.this, MainActivity.class);
startActivity(i);
} catch (Exception e) {
}
}
};
t.start();
这是功能检查的WiFi已连接与否:
public static boolean isConnected(Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = null;
if (connectivityManager != null) {
networkInfo = connectivityManager.getActiveNetworkInfo();
}
return networkInfo != null && networkInfo.getState() == NetworkInfo.State.CONNECTED;
}
最后,确保你的AndroidManifest.xml是这样的:
<activity android:name=".WifiExplorerActivity" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</activity>
此外,您还可以使用ProgressDialog等待连接。见http://developer.android.com/guide/topics/ui/dialogs.html
非常感谢。我使用它,它工作得很好 – prokopis 2012-01-01 17:01:04
为什么你需要清单中的? (我从来没有使用它,我不明白它是什么) –
MiniGod
2012-06-06 17:26:51
我使用android.net.conn.CONNECTIVITY_CHANGE为此活动注册Receiver,请参阅http://stackoverflow.com/questions/8127324/connectivitymanager-android -net-conn-connectivity-change – R4j 2012-06-07 02:14:51