package com.youkes.browser; import android.app.Application; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.location.Criteria; import android.location.Location; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import com.youkes.browser.database.BookmarkDatabase; import com.youkes.browser.database.HistoryDatabase; import com.youkes.browser.file.FileAccessor; import com.youkes.browser.preference.PreferenceUtils; public class MainApp extends Application { private static MainApp instance; public static Context getContext() { return context; } private static Context context; /** * 单例,返回一个实例 * @return */ public static MainApp getInstance() { if (instance == null) { } return instance; } public boolean hasNetwork() { if(context==null){ return false; } android.net.ConnectivityManager cManager = (android.net.ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); android.net.NetworkInfo info = cManager.getActiveNetworkInfo(); if (info != null && info.isAvailable()) { return true; } else { return false; } } /** * 获取应用程序版本名称 * @return */ public String getVersion() { String version = "0.0.0"; if(context == null) { return version; } try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo( getPackageName(), 0); version = packageInfo.versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return version; } /** * 获取应用版本号 * @return 版本号 */ public int getVersionCode() { int code = 1; if(context == null) { return code; } try { PackageInfo packageInfo = context.getPackageManager().getPackageInfo( getPackageName(), 0); code = packageInfo.versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return code; } @Override public void onCreate() { super.onCreate(); context = getApplicationContext(); instance = this; setChattingContactId(); initImageLoader(); FileAccessor.initFileAccess(); initDatabases(); } private void initDatabases() { } public boolean isNetworkAvailable() { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { return false; } else { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) { for (int i = 0; i < info.length; i++) { if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } /** * 保存当前的聊天界面所对应的联系人、方便来消息屏蔽通知 */ private void setChattingContactId() { } private void initImageLoader() { /* Md5FileNameGenerator ng=new Md5FileNameGenerator(); File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), FileAccessor.Image_Cache_Dir_Name); ImageLoaderConfiguration config = new ImageLoaderConfiguration .Builder(this) .imageDownloader(new CustomImageDownloader(context)) .threadPoolSize(1)//线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY - 2) .memoryCache(new WeakMemoryCache()) // .denyCacheImageMultipleSizesInMemory() .diskCacheFileNameGenerator(ng) // 将保存的时候的URI名称用MD5 加密 .tasksProcessingOrder(QueueProcessingType.LIFO) .diskCache(new UnlimitedDiscCache(cacheDir ,null ,ng))//自定义缓存路径 .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // .writeDebugLogs() // Remove for release app .build();//开始构建 ImageLoader.getInstance().init(config); */ } /** * 返回配置文件的日志开关 * @return */ public boolean getLoggingSwitch() { try { ApplicationInfo appInfo = getPackageManager().getApplicationInfo( getPackageName(), PackageManager.GET_META_DATA); boolean b = appInfo.metaData.getBoolean("LOGGING"); return b; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return false; } public float getScreenHeight() { return getBaseContext().getResources().getDisplayMetrics().heightPixels; } public float getScreenWidth() { return getBaseContext().getResources().getDisplayMetrics().widthPixels; } @Override public void onLowMemory() { super.onLowMemory(); } public int fromDPToPix( int dp) { return Math.round(getDensity() * dp); } float density=0; public float getDensity() { Context context= getContext(); if (density <= 0){ density = context.getResources().getDisplayMetrics().density; } return density; } public void logout() { PreferenceUtils.setAnonymous(); //AccountApi.getInstance().setLogout(); release(); } public static void release() { HistoryDatabase.reset(); BookmarkDatabase.reset(); } }