首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >等到android上的wifi接入

等到android上的wifi接入
EN

Stack Overflow用户
提问于 2011-12-30 18:11:13
回答 1查看 19.1K关注 0票数 17

我有一个小程序,试图连接到wifi网络。它在设备上启用wifi,然后如果是第一次连接到某个网络,它会加载设备wifi,以便选择和添加连接密码。直到我添加了密码才能连接程序,应该是没有完成的。如何添加要等待的内容,直到从已连接的wifi管理器获取?我尝试睡眠,但是它冻结了应用程序,并且无法连接wifi弹出菜单?还有别的办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-30 21:03:45

一个月前我已经找到了你的问题的解决方案,只需在其中使用Thread put方法isConnected()即可。

在本例中,我使用WifiExplorerActivity显示所有wifi网络并允许用户连接到它。

代码语言:javascript
复制
        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是否连接的函数:

代码语言:javascript
复制
  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如下所示:

代码语言:javascript
复制
    <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

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8678362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档