我有一个连接到硬件设备Wi-Fi热点的应用程序。 似乎Android转发请求通过其他网络(例如3G / 4G)而不是热点,因为我的热点没有互联网连接。
有没有办法强制网络流在wifi上工作? 我遇到过以下函数,但它已被弃用: https://developer.android.com/reference/android/net/ConnectivityManager.html#setNetworkPreference(int)
答案 0 :(得分:7)
根据Connecting your App to a Wi-Fi Device blog post:
要将您应用中的所有网络请求定向到外部Wi-Fi设备,请在Lollipop设备上拨打ConnectivityManager#setProcessDefaultNetwork,然后在Marshmallow上拨打ConnectivityManager#bindProcessToNetwork,这是直接替换API。
答案 1 :(得分:0)
使用ConnectivityManager获取Wifi适配器的状态,然后您可以使用NetworkInfo检查它是否已连接或甚至可用。
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifi.isConnected()) {
// Continue with logic
}
如果他没有连接到wifi,那么不要继续其他继续流动。
在Manifest文件中添加以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />