Java 当wifi和蜂窝数据都打开且wifi没有互联网连接时,使用蜂窝数据上网
目前的用例是这样的,我们必须维护Wifi P2P连接,当使用Wifi P2P连接接收到一些回调时,我们必须使用蜂窝数据将其推送到API,而不中断Wifi P2P连接 Wifi没有互联网连接,因此必须使用手机数据将接收到的信息推送到API 我通过搜索类似的SO帖子尝试了这一点:Java 当wifi和蜂窝数据都打开且wifi没有互联网连接时,使用蜂窝数据上网,java,android,android-layout,kotlin,networking,Java,Android,Android Layout,Kotlin,Networking,目前的用例是这样的,我们必须维护Wifi P2P连接,当使用Wifi P2P连接接收到一些回调时,我们必须使用蜂窝数据将其推送到API,而不中断Wifi P2P连接 Wifi没有互联网连接,因此必须使用手机数据将接收到的信息推送到API 我通过搜索类似的SO帖子尝试了这一点: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCr
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
forceConnectionToMobile2()
button.setOnClickListener {
Log.v("sahil", "${isConnected()}")
}
}
fun forceConnectionToMobile2() {
val connection_manager = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val request = NetworkRequest.Builder()
Log.d("sahil", "request TRANSPORT_CELLULAR")
request.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
request.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
connection_manager.requestNetwork(request.build(), object : NetworkCallback() {
override fun onAvailable(network: Network) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Log.d("sahil", "binding app to cellular network")
connection_manager.bindProcessToNetwork(network)
}
}
})
}
}
@Throws(InterruptedException::class, IOException::class)
fun isConnected(): Boolean {
val command = "ping -c 1 google.com"
return Runtime.getRuntime().exec(command).waitFor() == 0
}
}
当我使用其他没有互联网连接的设备的热点将我的设备连接到wifi并打开手机数据时,“isConnected()”中出现“False”
即使设备已连接到Wifi,我应该如何强制使用手机数据