Android 指定APK使用网络类型

当APK未指定使用网络类型时,APK会按照系统配置的默认网络优先顺序选择使用的网络,默认使用系统当前的网络。

例如,此时系统选择使用的为移动网络,则APK会采用对应的移动网络。

如果想要指定APK使用网络类型,使用ConnectivityManager提供的setProcessDefaultNetwork接口,便可以设置当前apk使用的网络类型。

具体使用的接口以及实现方法,如下,

public void selectNetworkType() {
    ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkRequest.Builder mRequest = new NetworkRequest.Builder();
    //mRequest.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);//选择使用移动数据网络
    mRequest.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);//选择使用WiFi网络

    ConnectivityManager.NetworkCallback callback = new ConnectivityManager.NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
            if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
                connectivityManager.setProcessDefaultNetwork(network);//使用所选网络
            } else {
                connectivityManager.bindProcessToNetwork(network);
            }
        }
    };
    connectivityManager.requestNetwork(mRequest.build(), callback);//检测到合适的网络时主动切换到该网络
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值