国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于安卓10以上連接wifi無(wú)法聯(lián)網(wǎng)的問(wèn)題

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于安卓10以上連接wifi無(wú)法聯(lián)網(wǎng)的問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

連接方式

在Android10之前應(yīng)用內(nèi)連接wifi是調(diào)用addNetwork和enableNetwork。但在Android10以后以上方法不會(huì)生效。

在Android10及以上,官方提供了以下應(yīng)用內(nèi)連接wifi的方式:文檔

val specifier = WifiNetworkSpecifier.Builder()
    .setSsidPattern(PatternMatcher("test", PatternMatcher.PATTERN_PREFIX))
    .setBssidPattern(MacAddress.fromString("10:03:23:00:00:00"), MacAddress.fromString("ff:ff:ff:00:00:00"))
    .build()

val request = NetworkRequest.Builder()
    .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
    .setNetworkSpecifier(specifier)
    .build()

val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager

val networkCallback = object : ConnectivityManager.NetworkCallback() {
    ...
    override fun onAvailable(network: Network?) {
        // do success processing here..
    }

    override fun onUnavailable() {
        // do failure processing here..
    }
    ...
}
connectivityManager.requestNetwork(request, networkCallback)
...
// Release the request when done.
connectivityManager.unregisterNetworkCallback(networkCallback)

但是注意!這段代碼在國(guó)內(nèi)的安卓機(jī)來(lái)說(shuō)根本沒(méi)什么鳥(niǎo)用,有些能彈出連接提示框,有些自動(dòng)給你連接失敗,關(guān)鍵是:就算連接成功后,也根本無(wú)法訪問(wèn)外部網(wǎng)絡(luò)。

有人說(shuō)在networkCallback的onAvailable方法加上

connectivityManager.bindProcessToNetwork(network);

我可以告訴你,一樣無(wú)效,谷歌和國(guó)內(nèi)的手機(jī)廠商沒(méi)有提供解決方案,可能沒(méi)重視。

測(cè)試過(guò)在鴻蒙系統(tǒng)可以做到,但也不穩(wěn)定。

其他發(fā)現(xiàn)

基于以上方案無(wú)解,我又看到了一個(gè)關(guān)于WifiNetworkSuggestion的介紹:

運(yùn)行 Android?10 (API 級(jí)別 29) 或更高版本 的設(shè)備允許您的應(yīng)用添加設(shè)備的網(wǎng)絡(luò)憑據(jù),以自動(dòng)連接到 WLAN 接入點(diǎn)。您可以使用?WifiNetworkSuggestion?就連接到哪個(gè)網(wǎng)絡(luò)提供建議。平臺(tái)最終會(huì)根據(jù)您的應(yīng)用和其他應(yīng)用的建議,選擇要接受的接入點(diǎn)。

好吧,經(jīng)過(guò)試驗(yàn),這個(gè)只是告訴你我會(huì)建議系統(tǒng)連接你的wifi,但并不一定會(huì)去連接,所以可以忽略這個(gè)方案。

解決方案

1.如果你不是非得校驗(yàn)wifi的正確性,那么彈窗提示用戶手動(dòng)跳轉(zhuǎn)到wifi設(shè)置界面,讓用戶手動(dòng)連接指定wifi。

val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)

2.既然是安卓10以上的問(wèn)題,那么只能不使用10以上的SDK

compileSdkVersion 28
targetSdkVersion 28

這個(gè)治標(biāo)不治本,無(wú)可奈何的選擇。

后續(xù)

經(jīng)測(cè)試MIUI 14系統(tǒng)已經(jīng)可以支持以上連接wifi的代碼,看來(lái)手機(jī)廠商也在逐步解決這個(gè)問(wèn)題文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-424332.html

到了這里,關(guān)于關(guān)于安卓10以上連接wifi無(wú)法聯(lián)網(wǎng)的問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包