android开发中如何指定某个apk使用wifi或者局域网(android9.0以上比较多出现这个问题),而其他apk使用4g网络

首先我们查询ConnectivityManager,发现如下方法可以设置当前apk的网络类型,需要的拿去

if(Build.VERSION.SDK_INT >= 21){
final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
NetworkRequest request = builder.build();
ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
Log.d(TAG, “onAvailable: network” + network);
if (Build.VERSION.SDK_INT >= 23) {
connectivityManager.bindProcessToNetwork(network);
} else {
ConnectivityManager.setProcessDefaultNetwork(network);
}
}
};
connectivityManager.requestNetwork(request, callback);
}

你可能感兴趣的:(android开发中如何指定某个apk使用wifi或者局域网(android9.0以上比较多出现这个问题),而其他apk使用4g网络)