【问题标题】:Android Q - Connect wifi without approvalAndroid Q - 未经批准连接 wifi
【发布时间】:2019-11-01 15:41:48
【问题描述】:

我正在开发一个自动连接到 Wifi 的应用程序。您会在下面找到我的代码,效果很好!

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    boutonConnecter.setOnClickListener {
        val wifiNetworkSpecifier = WifiNetworkSpecifier.Builder()
            .setSsid("MYSSID")
            .setWpa2Passphrase("MyPassphrase")
            .build()

        val networkRequest = NetworkRequest.Builder()
            .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
            .setNetworkSpecifier(wifiNetworkSpecifier)
            .build()

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

        connectivityManager.requestNetwork(
            networkRequest,
            ConnectivityManager.NetworkCallback()
        )


    }
}

但似乎使用Android Q(android 10),在连接之前,应用程序需要用户批准!它会打开一个弹出窗口,用户需要选择网络(批准)。

是否可以“绕过”用户批准?我想不征求用户同意直接连接wifi...

有可能吗?

【问题讨论】:

    标签: android android-studio android-wifi android-10.0


    【解决方案1】:

    实际上,有一种方法可以绕过用户批准流程,但它要求您在说明符中指定准确的 SSID 和 BSSID。如果您知道设备的 BSSID(通常是 mac 地址),您可以将其添加到说明符中,这样您就可以在未经用户批准的情况下进行连接。该应用程序将弹出一个显示连接的对话框,但它应该会自动完成,而无需用户按任何操作。

    【讨论】:

    • 拯救了我的一天...谢谢!
    【解决方案2】:

    不,这不可能从 Android 10 开始。此更改是为了用户隐私而购买到 Android 10 的。在此处查看官方文档:https://developer.android.com/about/versions/10/privacy/changes#enable-disable-wifi

    【讨论】:

    • Arf...谢谢您的回答,我以为有办法绕过用户隐私...
    猜你喜欢
    • 2020-01-25
    • 2020-05-20
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2020-05-15
    • 2020-06-24
    • 2020-02-20
    • 2018-12-08
    相关资源
    最近更新 更多