通過廣播對(duì)實(shí)時(shí)網(wǎng)絡(luò)權(quán)限的判斷
private boolean register = false;
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
State wifiState = null;
State mobileState = null;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
mobileState = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED == mobileState) {
// 手機(jī)網(wǎng)絡(luò)連接成功
new MaterialDialog.Builder(context)
.title("網(wǎng)絡(luò)選擇")
.content("您當(dāng)前處于非wifi網(wǎng)絡(luò)環(huán)境下,繼續(xù)使用可能產(chǎn)生流量")
.positiveText("繼續(xù)")
.negativeText("取消")
.positiveColor(getResources().getColor(R.color.colorPrimary))
.negativeColor(getResources().getColor(R.color.colorPrimary))
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
streamType = "fluxstream";
mPresenter.StartRealPlay(m_svPlayer, m_nPort, m_szCameraId, m_pDLLHandle, mTimeOut);
mPresenter.startGetStreamRate();
}
})
.show();
} else if (wifiState != null && mobileState != null && State.CONNECTED != wifiState && State.CONNECTED != mobileState) {
// 手機(jī)沒有任何的網(wǎng)絡(luò)
UIHelper.showtoast(context, "無網(wǎng)絡(luò),請(qǐng)檢查網(wǎng)絡(luò)!");
} else if (wifiState != null && State.CONNECTED == wifiState) {
// 無線網(wǎng)絡(luò)連接成功
}
}
};
private void registerNetworkReceiver() {
if(!register) {
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
this.registerReceiver(mReceiver, filter);
register = true;
}
}
private void unRegisterNetworkReceiver() {
if(register) {
this.unregisterReceiver(mReceiver);
register = false;
}
}