android链接WIFI局域网强制走数据访问外网办法

最近公司有个项目连接WIFI_Sd卡操作,手机在连接WIFI卡的时候,因为手机显示连接了WIFI就没法走数据了,可是WIFI卡本身没联网啊,又想在连接WIFI卡的时候,其他内容走移动数据外网,但是只能在Android6.0以上实现这功能

OkHttpClientokHttpClient=null;

public void getTestWifi(){

final ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkRequest.Builder builder =null;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {

builder =new NetworkRequest.Builder();

builder.addCapability(NET_CAPABILITY_INTERNET);

//强制使用蜂窝数据网络-移动数据

  builder.addTransportType(TRANSPORT_CELLULAR);

NetworkRequest build = builder.build();

connectivityManager.requestNetwork(build,new ConnectivityManager.NetworkCallback() {

@Override

            public void onAvailable(Network network) {

super.onAvailable(network);

try {

if(Build.VERSION.SDK_INT >=23) { connectivityManager.bindProcessToNetwork(network); //这句话要加上哈,不然设置不生效

 }else{// 23后这个方法舍弃了 ConnectivityManager.setProcessDefaultNetwork(network); }String url ="http://www.baidu.com";

okHttpClient =new OkHttpClient();

final Request request =new Request.Builder()

.url(url)

.get()//默认就是GET请求,可以不写

                        .build();

Call call =okHttpClient.newCall(request);

call.enqueue(new Callback() {

@Override

                    public void onFailure(Call call, IOException e) {

Log.d(TAG,"onFailure: ");

}

@Override

                    public void onResponse(Call call, Response response)throws IOException {

Log.d(TAG,"onResponse: " + response.body().string());

}

});

}catch (Exception e) {

}

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容