您好,登錄后才能下訂單哦!
package com.beini.networkchanges;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.TextView;
/**
*
* @author beini
*
*/
public class MainActivity extends Activity {
private NetworkChangeReceive networkChangeReceive;
private TextView txtShowNetWorkeSate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtShowNetWorkeSate = (TextView) findViewById(R.id.txt_showNetWorkeSate);
inintReceiver();
}
private void inintReceiver() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceive = new NetworkChangeReceive();
registerReceiver(networkChangeReceive, intentFilter);
}
class NetworkChangeReceive extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()) {
txtShowNetWorkeSate.setText(getString(R.string.net_aviable)
+ getNetWorkType(networkInfo));
} else {
txtShowNetWorkeSate.setText(getString(R.string.net_unaviable));
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceive);
}
/**
* 獲取網絡 2g,3g, 4g;通過networkInfo .getSubtype()會得到網絡的類型,
* 用networkInfo.getSubtypeName()會得到網絡的名字。
*/
public String getNetWorkType(NetworkInfo networkInfo) {
// int subType = networkInfo.getSubtype();
// String subTypeName = networkInfo.getSubtypeName();
//
int type = networkInfo.getType();
// String typeName = networkInfo.getTypeName();
//
// Log.i("beini", "subType=" + type + " " + "typeName=" + typeName);
// Log.i("beini", "subType=" + subType + " " + "subTypeName="
// + subTypeName);
if (type == ConnectivityManager.TYPE_WIFI) {
return getString(R.string.net_wifi);
} else if (type == ConnectivityManager.TYPE_MOBILE) {
return getnetworkChange();
}
return "";
}
public String getnetworkChange() {
TelephonyManager mTelephonyManager = (TelephonyManager) getApplication()
.getSystemService(Context.TELEPHONY_SERVICE);
int networkType = mTelephonyManager.getNetworkType();
switch (networkType) {
case TelephonyManager.NETWORK_TYPE_GPRS:
case TelephonyManager.NETWORK_TYPE_EDGE:
case TelephonyManager.NETWORK_TYPE_CDMA:
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN:
return "2G";
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_EVDO_B:
case TelephonyManager.NETWORK_TYPE_EHRPD:
case TelephonyManager.NETWORK_TYPE_HSPAP:
return "3G";
case TelephonyManager.NETWORK_TYPE_LTE:
return "4G";
default:
return "Unknown";
}
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。