package io.evercam.androidapp.utils; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.telephony.TelephonyManager; import io.evercam.androidapp.R; public class DataCollector { private Context mContext; public DataCollector(Context context) { this.mContext = context; } /** * Return app version name, could be an empty string */ public String getAppVersion() { String version = ""; if(mContext != null) { PackageInfo packageInfo; try { packageInfo = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0); version = packageInfo.versionName; } catch(NameNotFoundException e) { e.printStackTrace(); } } return version; } /** * Return device name in format manufacturer + model */ public static String getDeviceName() { String manufacturer = Build.MANUFACTURER; String model = Build.MODEL; if(model.startsWith(manufacturer)) { return capitalize(model); } else { return capitalize(manufacturer) + " " + model; } } public static String getAndroidVersion() { return Build.VERSION.RELEASE; } /** * Check if there is any connectivity to a Wifi network */ public boolean isConnectedWifi() { NetworkInfo info = getNetworkInfo(); return (info != null && info.isConnected() && info.getType() == ConnectivityManager .TYPE_WIFI); } /** * Check if there is any connectivity to a mobile network */ public boolean isConnectedMobile() { NetworkInfo info = getNetworkInfo(); return (info != null && info.isConnected() && info.getType() == ConnectivityManager .TYPE_MOBILE); } /** * Return '3G' or 'WiFi' */ public String getNetworkString() { if(isConnectedWifi()) { return mContext.getString(R.string.wifi); } else if(isConnectedMobile()) { return mContext.getString(R.string.three_g); } return mContext.getString(R.string.unknown); } /** * Get the network info */ private NetworkInfo getNetworkInfo() { ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService (Context.CONNECTIVITY_SERVICE); return connectivityManager.getActiveNetworkInfo(); } private static String capitalize(String s) { if(s == null || s.length() == 0) { return ""; } char first = s.charAt(0); if(Character.isUpperCase(first)) { return s; } else { return Character.toUpperCase(first) + s.substring(1); } } public static String getCountryCode(Context context) { TelephonyManager telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); return telephonyManager.getNetworkCountryIso(); } }