2012-08-10 91 views
2

在我的应用程序中,我只有在Wi-Fi可用时才发送数据。 我可以检查wi-fi或移动数据是否可用,但是当wi-fi和移动数据都处于活动状态时,我该如何处理?在这种情况下,我如何强制使用Wi-Fi?当WiFi和手机可用时强制WiFi发送数据

private static void logNetworkState() { 
    ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 

    NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
    NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 

    String logStr = "Network state: "; 

    if (wifi.isAvailable()) { 
     logStr+= " wi-fi avalibale;"; 
    } 
    if (mobile.isAvailable()) { 
     logStr+= " mobile network avaliable"; 
    } 
    log(logStr); 
} 
+0

为什么ü有这样的规定? – 2012-08-10 10:55:46

+0

@MohitSharma我想通过wi-fi发送大量数据,并通过手机或wi-fi发送文本数据。 – 2012-08-10 11:05:41

回答

0

如果两者都默认处于活动状态,则数据通过WI-FI路由。但是,这又取决于底层的网络实施。

通常我使用connectivymanager.startusingnetworkfeature()强制它使用移动数据。再在上面方法的参数是特定

0


默认情况下实现我的经验,当你有两个数据是通过只有WiFi传输。但如果万一你想做反之亦然,这种方法可能会帮助你setNetworkPreference

0

如要直接从您的应用程序到外部的Wi-Fi设备的所有的网络请求,在棒棒糖设备调用ConnectivityManager#setProcessDefaultNetwork,并呼吁棉花糖而是ConnectivityManager#bindProcessToNetwork,这是一个直接的API更换。

检查这个博客帖子:https://android-developers.googleblog.com/2016/07/connecting-your-app-to-wi-fi-device.html

+0

虽然这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/ review/low-quality-posts/19015384) – Sunil 2018-03-06 03:17:19

相关问题