导航菜单

页面标题

页面副标题

WeatherSense v1.8.9 - BaseApplication.java 源代码

正在查看: WeatherSense v1.8.9 应用的 BaseApplication.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.emax.weather.base;

import android.content.pm.PackageManager;
import android.database.sqlite.SQLiteDatabase;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import androidx.multidex.MultiDex;
import androidx.multidex.MultiDexApplication;
import butterknife.ButterKnife;
import com.alibaba.pdns.DNSResolver;
import com.emax.weather.bean.db.DBHelper;
import com.emax.weather.dao.DaoMaster;
import com.emax.weather.dao.DaoSession;
import com.emax.weather.net.Constant;
import com.emax.weather.umeng.PushHelper;
import com.ezon.health.utils_lib.FileUtils;
import com.ezon.health.utils_lib.SharedPreUtils;
import com.tencent.bugly.crashreport.CrashReport;
import com.umeng.commonsdk.UMConfigure;
import com.umeng.commonsdk.utils.UMUtils;
import java.io.File;
import java.io.IOException;
import java.util.Locale;

public class BaseApplication extends MultiDexApplication {
    private static final String ALIYUN_HOST_NAME = "www.emaxtime.ddns.net";
    private static final int CACHE_MAX_NUMBER = 100;
    private static final int MAX_NEGATIVE_CACHE = 30;
    private static final int MAX_TTL_CACHE = 3600;
    private static final String TAOBAO_HOST_NAME = "www.app.emaxlife.net";
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    private DBHelper mHelper;
    private String umengDeviceToken;
    public static String mqttUrl = Constant.MQTT_URL;
    private static BaseApplication myApplication = null;
    private static ConnectivityManager connectivityManager = null;
    private String serviceName = "com.emax.weather.service.HistroyDataService";
    public Boolean isBind = false;
    private boolean isRecordToFile = true;
    private String accountID = "149699";

    @Override
    public void onCreate() {
        super.onCreate();
        ButterKnife.setDebug(false);
        myApplication = this;
        connectivityManager = (ConnectivityManager) getSystemService("connectivity");
        MultiDex.install(this);
        FileUtils.createOrExistsDir(Constant.DIR);
        setupDatabase();
        initUmengSDK();
        if (this.isRecordToFile) {
            String str = getFilesDir() + "/log.txt";
            File file = new File(str);
            System.out.println(" file.exists() =" + file.exists());
            if (!file.exists()) {
                SharedPreUtils.putLong(this, "create_log_time", System.currentTimeMillis());
            } else {
                if (System.currentTimeMillis() - SharedPreUtils.getLong(this, "create_log_time", -1L) > 86400000) {
                    file.delete();
                }
            }
            try {
                Runtime.getRuntime().exec("logcat -f " + str);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        initLocale();
        CrashReport.initCrashReport(getApplicationContext(), "a03b4b0e19", false);
        DNSResolver.Init(this, this.accountID);
        DNSResolver.setEnableShort(false);
        DNSResolver.setEnableIPv6(false);
        DNSResolver.setEnableCache(true);
        DNSResolver.setEnableSpeedTest(false);
        DNSResolver.setEnableSchedulePrefetch(true);
        DNSResolver.setMaxTtlCache(MAX_TTL_CACHE);
        DNSResolver.setSpeedPort(80);
        DNSResolver.setMaxNegativeCache(30);
        DNSResolver.setSchemaType("https");
        DNSResolver.getInstance().setMaxCacheSize(100);
        DNSResolver.getInstance().preLoadDomains(new String[]{TAOBAO_HOST_NAME, ALIYUN_HOST_NAME});
    }

    private void initUmengSDK() {
        UMConfigure.setLogEnabled(true);
        PushHelper.preInit(this);
        if (UMUtils.isMainProgress(this)) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    PushHelper.init(BaseApplication.this.getApplicationContext());
                }
            }).start();
        } else {
            PushHelper.init(getApplicationContext());
        }
    }

    private void initLocale() {
        Locale locale = getResources().getConfiguration().locale;
        System.out.println("手机当前语言是: " + locale.getLanguage());
        locale.getLanguage().equals("iw");
    }

    private void setupDatabase() {
        DBHelper dBHelper = DBHelper.getInstance(getApplicationContext());
        this.mHelper = dBHelper;
        this.db = dBHelper.getWritableDatabase();
        Log.i("BaseApplication", "db update local-version:" + this.db.getVersion());
        DaoMaster daoMaster = new DaoMaster(this.db);
        this.mDaoMaster = daoMaster;
        this.mDaoSession = daoMaster.m47newSession();
    }

    public DaoSession getDaoSession() {
        return this.mDaoSession;
    }

    public SQLiteDatabase getDb() {
        return this.db;
    }

    public String getServiceName() {
        return this.serviceName;
    }

    public static BaseApplication getApplication() {
        return myApplication;
    }

    public static ConnectivityManager getConnectivityManager() {
        return connectivityManager;
    }

    public String getUmengDeviceToken() {
        return this.umengDeviceToken;
    }

    public static boolean isNetworkAvalible() {
        NetworkInfo[] allNetworkInfo;
        ConnectivityManager connectivityManager2 = connectivityManager;
        if (connectivityManager2 != null && (allNetworkInfo = connectivityManager2.getAllNetworkInfo()) != null) {
            for (NetworkInfo networkInfo : allNetworkInfo) {
                if (networkInfo.getState() == NetworkInfo.State.CONNECTED) {
                    return true;
                }
            }
        }
        return false;
    }

    public static String GetNetworkType() {
        String str = "";
        try {
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
            if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
                if (activeNetworkInfo.getType() == 1) {
                    str = "WIFI";
                } else if (activeNetworkInfo.getType() == 0) {
                    String subtypeName = activeNetworkInfo.getSubtypeName();
                    Log.e("cocos2d-x", "Network getSubtypeName : " + subtypeName);
                    int subtype = activeNetworkInfo.getSubtype();
                    switch (subtype) {
                        case 1:
                        case 2:
                        case 4:
                        case 7:
                        case 11:
                            str = "2G";
                            break;
                        case 3:
                        case 5:
                        case 6:
                        case 8:
                        case 9:
                        case 10:
                        case 12:
                        case 14:
                        case 15:
                            str = "3G";
                        case 13:
                            str = "4G";
                            break;
                        default:
                            if (!subtypeName.equalsIgnoreCase("TD-SCDMA") && !subtypeName.equalsIgnoreCase("WCDMA") && !subtypeName.equalsIgnoreCase("CDMA2000")) {
                                str = subtypeName;
                                break;
                            }
                            str = "3G";
                            break;
                    }
                    Log.e("cocos2d-x", "Network getSubtype : " + Integer.valueOf(subtype).toString());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.e("cocos2d-x", "Network Type : " + str);
        return str;
    }

    public static String getVersionName() {
        String str;
        try {
            str = myApplication.getPackageManager().getPackageInfo(myApplication.getPackageName(), 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            str = null;
        }
        return "V" + str;
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
    }
}