package com.baidu.speech.utils; import android.annotation.SuppressLint; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.text.TextUtils; import androidx.core.internal.view.SupportMenu; import java.io.BufferedReader; import java.io.FileReader; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Locale; public final class Utility { private static final int BYTES_PER_SAMPLE_16BIT = 2; private static final int BYTES_PER_SAMPLE_8BIT = 1; private static final int BYTES_PER_SHORT = 2; private static int EVR_NETWORK_TYPE_2G = 1; private static int EVR_NETWORK_TYPE_3G = 2; private static int EVR_NETWORK_TYPE_4G = 3; private static int EVR_NETWORK_TYPE_NO = 0; private static int EVR_NETWORK_TYPE_WIFI = 4; private static final String TAG = "Utility"; private static final int THOUSAND_DIV = 1000; private static ConnectivityManager mConnManager; private static int maxCpuFreq; private Utility() { } public static boolean checkPermission(Context context, String str) { return context.checkCallingOrSelfPermission(str) == 0; } public static String fun(Exception exc) { StackTraceElement[] stackTrace = exc.getStackTrace(); if (stackTrace == null) { return ""; } return stackTrace[0].getMethodName() + "()"; } static String generatePlatformString() { StringBuilder sb = new StringBuilder("Android"); sb.append('&'); try { sb.append(URLEncoder.encode(Build.MODEL, "utf-8")); sb.append('&'); sb.append(URLEncoder.encode(Build.VERSION.RELEASE, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } sb.append('&'); sb.append(Build.VERSION.SDK_INT); return sb.toString(); } private static int getCpuInfo() { String str = ""; try { BufferedReader bufferedReader = new BufferedReader(new FileReader("/proc/cpuinfo"), 1024); while (true) { String readLine = bufferedReader.readLine(); if (readLine != null) { if (readLine.indexOf("BogoMIPS") != -1) { str = readLine.split("\\s+")[2]; break; } } else { break; } } bufferedReader.close(); return (int) (Float.parseFloat(str.trim()) * 1000.0f); } catch (Exception unused) { return 0; } } public static String getFileName(Exception exc) { StackTraceElement[] stackTrace = exc.getStackTrace(); if (stackTrace == null || stackTrace.length == 0) { return null; } return stackTrace[0].getFileName(); } public static String getLineNumber(Exception exc) { StackTraceElement[] stackTrace = exc.getStackTrace(); if (stackTrace == null || stackTrace.length == 0) { return null; } return stackTrace[0].getFileName() + ":" + stackTrace[0].getLineNumber(); } public static int getMaxCpuFreq() { String str = ""; try { if (maxCpuFreq != 0) { return maxCpuFreq; } if (isRunningEmulator()) { Process start = new ProcessBuilder("/system/bin/cat", "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq").start(); InputStream inputStream = start.getInputStream(); byte[] bArr = new byte[24]; while (inputStream.read(bArr) != -1) { str = str + new String(bArr); } inputStream.close(); start.destroy(); } else { FileReader fileReader = new FileReader("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq"); BufferedReader bufferedReader = new BufferedReader(fileReader); String readLine = bufferedReader.readLine(); bufferedReader.close(); fileReader.close(); str = readLine; } int cpuInfo = getCpuInfo(); if (TextUtils.isEmpty(str)) { return cpuInfo; } int parseInt = Integer.parseInt(str.trim()); if (parseInt < cpuInfo) { parseInt = cpuInfo; } maxCpuFreq = parseInt; return maxCpuFreq; } catch (Exception unused) { return 0; } } public static NetworkInfo getNetworkInfo(Context context) { return ((ConnectivityManager) context.getSystemService("connectivity")).getActiveNetworkInfo(); } static int getStatusType(int i) { return i & SupportMenu.CATEGORY_MASK; } public static int getVoiceDataSizeInShort(int i, int i2, int i3) { if (i3 == 2 || i3 == 3) { return (((i * i2) * (i3 == 3 ? 1 : 2)) / 1000) / 2; } throw new IllegalArgumentException("audio format invalid"); } @SuppressLint({"DefaultLocale"}) public static int getWifiOr2gOr3G(Context context) { NetworkInfo activeNetworkInfo; int i = EVR_NETWORK_TYPE_NO; if (context == null) { return i; } try { ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService("connectivity"); if (!isNetworkPerission(context) || (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) == null || !activeNetworkInfo.isConnectedOrConnecting()) { return i; } if (activeNetworkInfo.getTypeName().toLowerCase().equals("wifi")) { return EVR_NETWORK_TYPE_WIFI; } int i2 = EVR_NETWORK_TYPE_2G; switch (activeNetworkInfo.getSubtype()) { case 1: case 2: case 4: case 11: return i2; case 3: case 5: case 6: case 7: case 8: case 9: case 10: case 12: case 14: case 15: return EVR_NETWORK_TYPE_3G; case 13: return EVR_NETWORK_TYPE_4G; default: return i2; } } catch (Exception e) { e.printStackTrace(); return i; } } static void init(Context context) { if (context != null) { mConnManager = (ConnectivityManager) context.getSystemService("connectivity"); } } public static boolean is2G(Context context) { NetworkInfo activeNetworkInfo; try { ConnectivityManager connectivityManager = (ConnectivityManager) context.getApplicationContext().getSystemService("connectivity"); if (!isNetworkPerission(context) || (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) == null || !activeNetworkInfo.isConnectedOrConnecting() || activeNetworkInfo.getTypeName().toLowerCase().equals("wifi")) { return false; } int subtype = activeNetworkInfo.getSubtype(); if (subtype == 4 || subtype == 7 || subtype == 11 || subtype == 16) { return true; } switch (subtype) { case 1: case 2: return true; } return false; } catch (Exception e) { e.printStackTrace(); } } public static boolean isNetworkConnected(Context context) { NetworkInfo networkInfo = getNetworkInfo(context); return networkInfo != null && networkInfo.isConnected(); } private static boolean isNetworkPerission(Context context) { try { return context.getPackageManager().checkPermission("android.permission.ACCESS_NETWORK_STATE", context.getPackageName()) == 0; } catch (Exception e) { e.printStackTrace(); return false; } } private static boolean isRunningEmulator() { return Build.MODEL.equals("sdk") || Build.MODEL.equals("google_sdk"); } @SuppressLint({"DefaultLocale"}) static boolean isUsingWifi() { NetworkInfo activeNetworkInfo; ConnectivityManager connectivityManager = mConnManager; if (connectivityManager == null || (activeNetworkInfo = connectivityManager.getActiveNetworkInfo()) == null) { return false; } return "wifi".equals(activeNetworkInfo.getTypeName().toLowerCase()); } static boolean isUsingWifi(Context context) { NetworkInfo activeNetworkInfo; try { return isNetworkPerission(context) && (activeNetworkInfo = ((ConnectivityManager) context.getApplicationContext().getSystemService("connectivity")).getActiveNetworkInfo()) != null && "wifi".equals(activeNetworkInfo.getTypeName().toLowerCase(Locale.US)); } catch (Exception e) { e.printStackTrace(); } } public static boolean isWifiConnected(Context context) { NetworkInfo networkInfo = getNetworkInfo(context); return networkInfo != null && networkInfo.isConnected() && networkInfo.getType() == 1; } public static String urlEncode(String str, String str2) { try { return !TextUtils.isEmpty(str) ? URLEncoder.encode(str, str2) : str; } catch (UnsupportedEncodingException unused) { return str; } } }