首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中以编程方式连接WPS?

在Android中以编程方式连接WPS?
EN

Stack Overflow用户
提问于 2016-11-25 01:29:23
回答 2查看 3.7K关注 0票数 0

如何通过编程方式尝试连接WPS协议的wifi?我发现了WEP,WPA和开放wifi的连接方式,但没有WPS.

谢谢大家!

编辑在Greg432的回答之后

我试过这段代码,但它不起作用,解决方案?

代码语言:javascript
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

                wpsInfo = new WpsInfo();
                wpsInfo.BSSID = wifiList.get(0).BSSID;
                wpsInfo.pin = "11883737";
                wpsInfo.setup = 0;


                wpsCallback = new WifiManager.WpsCallback() {
                    @Override
                    public void onStarted(String pin) {
                        Toast.makeText(getApplicationContext(), "Started wps connection.", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onSucceeded() {
                        Toast.makeText(getApplicationContext(), "Connected!", Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onFailed(int reason) {
                        String errorMessage;
                        switch (reason) {
                            case WifiManager.WPS_OVERLAP_ERROR:
                                errorMessage = "WPS_OVERLAP_ERROR";
                                break;
                            case WifiManager.WPS_WEP_PROHIBITED:
                                errorMessage = "WPS_WEP_PROHIBITED";
                                break;
                            case WifiManager.WPS_TKIP_ONLY_PROHIBITED:
                                errorMessage = "WPS_WEP_PROHIBITED";
                                break;
                            /*case WifiManager.IN_PROGRESS:
                                mWifiManager.cancelWps(null);
                                startWps();
                                return;*/
                            case WifiManager.WPS_TIMED_OUT:
                                errorMessage = "WPS_TIMED_OUT";
                                //startWps();
                                return;
                            default:
                                errorMessage = "Generic error.";
                                break;
                        }

                        Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_SHORT).show();
                    }
                };

                wifiManager.startWps(wpsInfo, wpsCallback);
}
EN

回答 2

Stack Overflow用户

发布于 2016-11-25 05:51:22

使用WifiManager的startWps()方法:

代码语言:javascript
复制
mWifiManager.startWps(wpsConfig, mWpsCallback);

您应该传递一个配置和一个回调。

示例

https://android.googlesource.com/platform/packages/apps/TvSettings/+/lollipop-wear-release/Settings/src/com/android/tv/settings/connectivity/WpsConnectionActivity.java

票数 1
EN

Stack Overflow用户

发布于 2021-05-02 17:12:50

更新2021

从API 28和更高版本开始,以编程方式与WPS的连接被取消和删除。

不再可能与mWifiManager.startWps(wpsConfig, mWpsCallback);连接,也没有其他选择。

来源:https://developer.android.com/reference/android/net/wifi/WifiManager#startWps(android.net.wifi.WpsInfo,%20android.net.wifi.WifiManager.WpsCallback)

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

https://stackoverflow.com/questions/40796502

复制
相关文章

相似问题

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