最近公司有個(gè)項(xiàng)目連接WIFI_Sd卡操作胜宇,手機(jī)在連接WIFI卡的時(shí)候苇本,因?yàn)槭謾C(jī)顯示連接了WIFI就沒法走數(shù)據(jù)了弃理,可是WIFI卡本身沒聯(lián)網(wǎng)啊溜哮,又想在連接WIFI卡的時(shí)候滔金,其他內(nèi)容走移動(dòng)數(shù)據(jù)外網(wǎng)色解,但是只能在Android6.0以上實(shí)現(xiàn)這功能
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);
//強(qiáng)制使用蜂窩數(shù)據(jù)網(wǎng)絡(luò)-移動(dòng)數(shù)據(jù)
? 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); //這句話要加上哈茂嗓,不然設(shè)置不生效
?}else{// 23后這個(gè)方法舍棄了 ConnectivityManager.setProcessDefaultNetwork(network); }String url ="http://www.baidu.com";
okHttpClient =new OkHttpClient();
final Request request =new Request.Builder()
.url(url)
.get()//默認(rèn)就是GET請(qǐng)求,可以不寫
? ? ? ? ? ? ? ? ? ? ? ? .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) {
}
}
}
}