Android Q-未经批准即可连接wifi

时间:2019-11-01 15:41:48

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

我正在开发一个可自动连接到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,而无需征得用户的同意...

有可能吗?

2 个答案:

答案 0 :(得分:3)

否,无法从Android 10开始。出于用户隐私的考虑,此更改已购买到Android 10。请在此处查看官方文档:https://developer.android.com/about/versions/10/privacy/changes#enable-disable-wifi

答案 1 :(得分:0)

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