微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加 Passpoint 未连接

如何解决添加 Passpoint 未连接

我在 Android 11 上的应用中添加了密码配置。 添加工作正常,但无法连接。

我试图获取添加了哪些通行证的列表,但得到了一个空列表。

    val config = PasspointConfiguration()
    config.credential = Credential().apply {
        userCredential = Credential.UserCredential().apply {
            username = "******"
            password =  Base64.getEncoder().encodetoString("*****".toByteArray())
            eapType = 21
            nonEapInnerMethod = "MS-CHAP-V2"
        }
        realm = "merki.local"

        certCredential = null
        caCertificate = myCertificate
        clientPrivateKey = null
        clientCertificateChain = null
    }
    config.homeSp = HomeSp().apply {
        fqdn = "meraki.com"
        friendlyName = "Meraki"
    }
        
    val bundle1 = Bundle()
    bundle1.putParcelableArrayList(EXTRA_WIFI_NETWORK_LIST,suggestionsList)
    val intent = Intent(ACTION_WIFI_ADD_NETWORKS)
    intent.putExtras(bundle1) 
    context.startActivityForResult(intent,9999)

我收到弹出窗口,要求我确认添加,然后单击“确定”。

在活动中,我有以下内容

    public void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);

    LOG.d("onActivityResult requestCode= ",requestCode," resultCode= ",resultCode);
    if (requestCode == 9999){
        if(resultCode == RESULT_OK) {
            // user agreed to save configurations: still need to check individual results
            if (data != null && data.hasExtra(EXTRA_WIFI_NETWORK_RESULT_LIST)) {
                for(int code :  data.getIntegerArrayListExtra(EXTRA_WIFI_NETWORK_RESULT_LIST)) {
                    switch (code) {
                        case ADD_WIFI_RESULT_SUCCESS:
                            List<WifiNetworkSuggestion> passpoints = ((WifiManager)getApplicationContext().getSystemService(Context.WIFI_SERVICE)).getNetworkSuggestions();
                            break;
                        case ADD_WIFI_RESULT_ADD_OR_UPDATE_Failed:
                            break;
                        case ADD_WIFI_RESULT_ALREADY_EXISTS:
                            break;
                        default:
                            break;
                    }
                }
            }
        } else {
            // User refused to save configurations
        }
    }

}

getNetworkSuggestions() 和 getpasspointConfigurations() 一样返回一个空列表 然而,配置文件确实出现在已保存的网络列表中。

在这里遗漏了什么吗?

解决方法

从您的代码中,我可以看到您尚未将密码配置添加到您的建议列表中。

var suggestionList: List<WifiNetworkSuggestion> = ArrayList()
val suggestion = WifiNetworkSuggestion.Builder()
        .setPasspointConfig(p1)
        .setIsAppInteractionRequired(true) // Optional (Needs location permission)
        .build()

您可以在 Blog about passpoint configuration in Android

中阅读有关密码配置的更多信息
suggestionList.add(suggestion)

然后将此列表添加到您的捆绑包中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。