mac
2023-11-22 3f41182984d69d7fae703776edd1591f48dff93f
app/src/main/java/com/hdl/photovoltaic/utils/AppManagerUtils.java
@@ -4,7 +4,18 @@
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import com.hdl.photovoltaic.HDLApp;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Stack;
@@ -35,8 +46,8 @@
    /**
     * 获取AppVersion
     *
     * @param context
     * @return
     * @param context -
     * @return -
     */
    public static String getAppVersion(Context context) {
        String version = "";
@@ -94,10 +105,11 @@
    /**
     * 指定一个类名,从指定类名开始移除后面所有Activity
     * @param className Activity-类名(activity.getClass().getName())
     *
     * @param className   Activity-类名(activity.getClass().getName())
     * @param removeClass 是否移除本身(true-移除)
     */
    public void finishActivity(String className,boolean removeClass) {
    public void finishActivity(String className, boolean removeClass) {
        Iterator<Activity> iterator = activityStack.listIterator();
        while (iterator.hasNext()) {
            Activity activity = iterator.next();
@@ -145,6 +157,14 @@
        activityStack.clear();
    }
    /**
     * 获取ActivitySize
     */
    public int getActivitySize() {
        return activityStack.size();
    }
//    /**
//     * 判断当前应用是否是debug状态
//     */
@@ -157,6 +177,55 @@
//        }
//    }
    /**
     * 获得IP地址,分为两种情况:
     * 一:是wifi下;
     * 二:是移动网络下;
     */
    public String getIPAddress(Context context) {
        NetworkInfo info = ((ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
        if (info != null && info.isConnected()) {
            if (info.getType() == ConnectivityManager.TYPE_MOBILE) {//当前使用2G/3G/4G网络
                try {
                    //Enumeration<NetworkInterface> en=NetworkInterface.getNetworkInterfaces();
                    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 if (info.getType() == ConnectivityManager.TYPE_WIFI) {//当前使用无线网络
                WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                //调用方法将int转换为地址字符串
                String ipAddress = intIP2StringIP(wifiInfo.getIpAddress());//得到IPV4地址
                return ipAddress;
            }
        } else {
            //当前无网络连接,请在设置中打开网络
        }
        return null;
    }
    /**
     * 将得到的int类型的IP转换为String类型
     *
     * @param ip int类型
     * @return -
     */
    public static String intIP2StringIP(int ip) {
        return (ip & 0xFF) + "." +
                ((ip >> 8) & 0xFF) + "." +
                ((ip >> 16) & 0xFF) + "." +
                (ip >> 24 & 0xFF);
    }
}