1.activity_main.xml
<TextView
android:id="@+id/nametextview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginBottom="200dp"
android:textSize="20sp" />
<TextView
android:id="@+id/ipTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginBottom="100dp"
android:textSize="20sp" />
2.MainActivity.java,連接手機網路3G/4G/WIFI/無網路
public class MainActivity extends AppCompatActivity {
private TextView ipTextView = null;
private TextView nameTextView = null;
private ConnectivityManager mConnectivityManager = null;
private NetworkInfo mActiveNetInfo = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameTextView = (TextView) findViewById(R.id.nametextview);
ipTextView = (TextView) findViewById(R.id.ipTextView);
mConnectivityManager = (ConnectivityManager)getSystemService(CONNECTIVITY_SERVICE) ;//獲取系統的連接服務
mActiveNetInfo = mConnectivityManager.getActiveNetworkInfo();//獲取網路連接的資訊
if(mActiveNetInfo==null)
myDialog();
else
setUpInfo();
}
//獲取ip地址
public String getIPAddress() {
NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
if ((info.getType() == ConnectivityManager.TYPE_MOBILE) || (info.getType() == ConnectivityManager.TYPE_WIFI) ){//當前使用2G/3G/4G網路
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress();
}
}
}
}
catch (SocketException e) {
e.printStackTrace();
}
}
}
else { //當前無網路連接,請在設定中打開網路
return null;
}
return null;
}
public void setUpInfo() {
if(mActiveNetInfo.getType()==ConnectivityManager.TYPE_WIFI) {
nameTextView.setText("網路型別:WIFI");
ipTextView.setText("IP地址:"+getIPAddress());
}
else if(mActiveNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) {
nameTextView.setText("網路型別:3G/4G");
ipTextView.setText("IP地址:"+getIPAddress());
}
else {
nameTextView.setText("網路型別:未知");
ipTextView.setText("IP地址:");
}
}
private void myDialog() {
AlertDialog mDialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("注意")
.setMessage("當前網路不可用,請檢查網路!")
.setPositiveButton("確定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
MainActivity.this.finish();
}
})
.create();//創建這個對話框
mDialog.show();//顯示這個對話框
}
}
3.在AndroidManifest.xml檔案里添置二個權限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
4.測驗結果
3G/4G網路、wifi網路、無網路三種情況測驗如下圖:

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/294740.html
標籤:其他
