如何在Android中通过网络对象建立SMB连接?

如何在Android中通过网络对象建立SMB连接?,android,smb,android-10.0,android-connectivitymanager,libsmbclient,Android,Smb,Android 10.0,Android Connectivitymanager,Libsmbclient,我正在尝试建立SMB(Samba)连接,以获取文件列表,并使用smbj库的SMBClient下载它们 为此,我必须连接到特定网络并使用该类,但在Android Q中,我必须更改连接到无线的方式,如下所示: val wifiNetworkSpecifier: WifiNetworkSpecifier = WifiNetworkSpecifier.Builder().apply { setSsid(ssid) setWpa2Passphrase(password) }.build()

我正在尝试建立SMB(Samba)连接,以获取文件列表,并使用smbj库的SMBClient下载它们

为此,我必须连接到特定网络并使用该类,但在Android Q中,我必须更改连接到无线的方式,如下所示:

val wifiNetworkSpecifier: WifiNetworkSpecifier = WifiNetworkSpecifier.Builder().apply {
    setSsid(ssid)
    setWpa2Passphrase(password)
}.build()

val networkRequest: NetworkRequest = NetworkRequest.Builder().apply {
    addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
    removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
    addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED)
    setNetworkSpecifier(wifiNetworkSpecifier)
}.build()

val networkCallback: ConnectivityManager.NetworkCallback = object : ConnectivityManager.NetworkCallback() {
    override fun onAvailable(network: Network) {
        Log.d(tag, "::onAvailable - Entry")
        super.onAvailable(network)
    }

    override fun onUnavailable() {
        Log.d(tag, "::onUnavailable - Entry")
        super.onUnavailable()
    }
}
这会在应用程序中建立连接,但会通过移动数据建立主连接,我无法建立连接,因为无法访问服务器。我必须找到通过
onAvailable
函数中的
network
对象建立连接的方法

您知道如何或有其他方法吗?

解决方案

我在ConnectivityManager类中找到了一个方法,该方法是
bindProcessToNetwork


connectivityManager.bindProcessToNetwork(网络)

我在connectivityManager类中找到了一个方法,该方法是bindProcessToNetwork

connectivityManager.bindProcessToNetwork(network)

我在ConnectivityManager类中发现了一个方法,该方法是bindProcessToNetwork

connectivityManager.bindProcessToNetwork(network)