Blame | Last modification | View Log | RSS feed
package com.saholic.profittill.Utils;import android.content.Context;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.os.Build;import android.telephony.TelephonyManager;import android.util.DisplayMetrics;import com.google.android.gms.common.ConnectionResult;import com.google.android.gms.common.GooglePlayServicesUtil;import java.util.HashMap;import java.util.Map;/*** Created by kshitij on 24/7/15.*/public class AnalyticsUtility {public static String getImeiNumber(Context context){TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephonyManager.getDeviceId();}public static String getNetworkOperatorName(Context context){TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephonyManager.getNetworkOperatorName();}public static String getNetworkOperator(Context context){TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);return telephonyManager.getNetworkOperator();}public static String checkGooglePlayServices(Context context){if(ConnectionResult.SUCCESS== GooglePlayServicesUtil.isGooglePlayServicesAvailable(context)){return "available";}else{return "error" + GooglePlayServicesUtil.isGooglePlayServicesAvailable(context);}}public static String getAppVersionCode(Context c){String appVersion;try {PackageManager manager = c.getPackageManager();PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);appVersion=info.versionCode+"";}catch (PackageManager.NameNotFoundException pm){appVersion=null;}return appVersion;}public static String getAppVersionName(Context c){String appVersion;try {PackageManager manager = c.getPackageManager();PackageInfo info = manager.getPackageInfo(c.getPackageName(), 0);appVersion=info.versionName+"";}catch (PackageManager.NameNotFoundException pm){appVersion=null;}return appVersion;}public static boolean checkWifi(Context context){boolean checkWifi;ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (mWifi==null){checkWifi= Boolean.parseBoolean(null);}else {checkWifi = mWifi.isConnected();}return checkWifi;}public static int getOsVersion(){return android.os.Build.VERSION.SDK_INT;}public static String getManufacturer(){return Build.MANUFACTURER;}public static String getBrand(){return Build.BRAND;}public static String getModel(){return Build.MODEL;}public static int getHeight(Context c){DisplayMetrics metrics = c.getResources().getDisplayMetrics();return metrics.heightPixels;}public static int getwidth(Context c){DisplayMetrics metrics = c.getResources().getDisplayMetrics();return metrics.widthPixels;}public static String getProperties(Context c){StringBuilder properties = new StringBuilder();properties.append("{");properties.append("'Imei Number':'"+UtilityFunctions.getImeiNumber(c)+"'");properties.append(",'Version Code':'" + AnalyticsUtility.getAppVersionCode(c)+"'");properties.append(",'Version Name':'" + AnalyticsUtility.getAppVersionName(c)+"'");properties.append(",'Os Version':'"+AnalyticsUtility.getOsVersion()+"'");properties.append(",'Manufacturer':'"+AnalyticsUtility.getManufacturer()+"'");properties.append(",'Brand':'"+AnalyticsUtility.getBrand()+"'");properties.append(",'Model':'"+AnalyticsUtility.getModel()+"'");properties.append(",'WiFi':'" + AnalyticsUtility.checkWifi(c)+"'");properties.append(",'Google Play Services':'" + AnalyticsUtility.checkGooglePlayServices(c)+"'");properties.append(",'Operator Name':'" + AnalyticsUtility.getNetworkOperatorName(c)+"'");properties.append(",'Operator Type':'" + AnalyticsUtility.getNetworkClass(c)+"'");properties.append(",'Height':'" + AnalyticsUtility.getHeight(c)+"'");properties.append(",'Width':'" + AnalyticsUtility.getwidth(c)+"'");properties.append("}");return properties.toString();}public static String getNetworkClass(Context context) {TelephonyManager mTelephonyManager = (TelephonyManager)context.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";}}public static Map<String,String> getAnalyticsRequest(Context c, String user_id,String category,String action,String label){Map<String,String> analyticsRequest=new HashMap<>();analyticsRequest.put("user_id", user_id);analyticsRequest.put("category", category);analyticsRequest.put("action", action);analyticsRequest.put("label", label);analyticsRequest.put("properties", getProperties(c));return analyticsRequest;}}