package com.roboo.like.google; import io.yunba.android.manager.YunBaManager; import java.util.LinkedList; import org.eclipse.paho.client.mqttv3.IMqttActionListener; import org.eclipse.paho.client.mqttv3.IMqttToken; import android.app.Activity; import android.app.ActivityManager; import android.app.Application; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; import android.util.Log; import android.widget.Toast; import cn.jpush.android.api.JPushInterface; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.MKGeneralListener; import com.baidu.mapapi.map.MKEvent; import com.droidux.components.DroidUxLib; public class GoogleApplication extends Application { public static final int DB_VERSION = 0711;// 7月11日 public static final String DB_NAME = "android"; public static boolean mIsOnlyAndroid = false; public static boolean mIsExactBus = false; /**IT之家*/ public static final int TYPE_ITHOME = 0; /**CSDN论坛*/ public static final int TYPE_CSDN = 1; /**科技锋芒*/ public static final int TYPE_PHONEKR = 2; /**EOE社区*/ public static final int TYPE_EOE = 3; /**极客公园*/ public static final int TYPE_GEEKPARK = 4; /**IT199*/ public static final int TYPE_199IT = 5; /**36氪*/ public static final int TYPE_36KR = 6; /**虎嗅网*/ public static final int TYPE_HUXIU = 7; /**穿衣打扮*/ public static final int TYPE_CHUANYI_DABAN = 8; /**网络尖刀*/ public static final int TYPE_WLJD = 9; /**安卓网*/ public static final int TYPE_HIAPK = 10; /**下厨房*/ public static final int TYPE_XCF = 11; public static int mCurrentType = TYPE_CSDN; private LinkedList<Activity> mActivities = new LinkedList<Activity>(); public static final String BASE_DIDI_URL = "http://pay.xiaojukeji.com/api/v2/webapp?city="; private static GoogleApplication mInstance; // /** IT之家的图片地址前缀 */ // public static final String PREFIX_ITHOME_IMG_URL = "http://img.ithome.com"; // /** CSDN的图片地址前缀 */ // public static final String PREFIX_CSDN_IMG_URL = "http://cms.csdnimg.cn"; // public static final String PREFIX_PHONEKR_IMG_URL = "http://www.phonekr.com"; public static final String BASE_COMMENT_URL = "http://www.ithome.com/ithome/GetAjaxData.aspx?type=commentpage"; /** 获取评论的URL */ public static final String DUMMY_COMMENT_URL = "http://www.ithome.com/ithome/GetAjaxData.aspx?newsid=78507&type=commentpage&page=1"; /** 用于测试 */ public static boolean TEST = true; /** DEBUG TAG */ private static final String DEBUG_LOG_TAG = "GoogleApplication"; private Intent mNetworkIntent; /** 当前设备处于的网络类型 */ public static String mNetworkType = "NONE"; protected ServiceConnection mServiceConnection = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { if (TEST) { Log.d(DEBUG_LOG_TAG, "网络服务断开连接"); } } public void onServiceConnected(ComponentName name, IBinder service) { if (TEST) { Log.d(DEBUG_LOG_TAG, "网络服务已经连接"); } } }; public void onCreate() { super.onCreate(); mInstance = this; startNetworkService(); // bindNetworkService(); // startYunBaService(); initJPush(); } /***TODO 开启网络服务*/ private void startNetworkService() { mNetworkIntent = new Intent(this, NetworkService.class); startService(mNetworkIntent); } protected void bindNetworkService() { mNetworkIntent = new Intent(this, NetworkService.class); bindService(mNetworkIntent, mServiceConnection, BIND_AUTO_CREATE); } public void unBindNetworkService() { // unbindService(mServiceConnection); stopService(mNetworkIntent); } public BMapManager mBMapManager; public boolean m_bKeyRight = true; public void initEngineManager(Context context) { if (mBMapManager == null) { mBMapManager = new BMapManager(context); } if (!mBMapManager.init(new MyGeneralListener())) { Toast.makeText( GoogleApplication.getInstance().getApplicationContext(), "BMapManager 初始化错误!", Toast.LENGTH_LONG).show(); } } // 常用事件监听,用来处理通常的网络错误,授权验证错误等 static class MyGeneralListener implements MKGeneralListener { @Override public void onGetNetworkState(int iError) { if (iError == MKEvent.ERROR_NETWORK_CONNECT) { Toast.makeText( GoogleApplication.getInstance().getApplicationContext(), "您的网络出错啦!", Toast.LENGTH_LONG).show(); } else if (iError == MKEvent.ERROR_NETWORK_DATA) { Toast.makeText( GoogleApplication.getInstance().getApplicationContext(), "输入正确的检索条件!", Toast.LENGTH_LONG).show(); } } @Override public void onGetPermissionState(int iError) { // 非零值表示key验证未通过 if (iError != 0) { // 授权Key错误: Toast.makeText( GoogleApplication.getInstance().getApplicationContext(), "请 输入正确的授权Key,并检查您的网络连接是否正常!error: " + iError, Toast.LENGTH_LONG).show(); GoogleApplication.getInstance().m_bKeyRight = false; } else { GoogleApplication.getInstance().m_bKeyRight = true; Toast.makeText( GoogleApplication.getInstance().getApplicationContext(), "key认证成功", Toast.LENGTH_LONG).show(); } } } public static GoogleApplication getInstance() { return mInstance; } /**TODO 记录Activity*/ public void recordActivity(Activity activity) { mActivities.add(activity); } /**TODO 退出APP */ public void exitClient() { JPushInterface.stopPush(this); JPushInterface.onKillProcess(this); if (null != mBMapManager) { mBMapManager.stop(); mBMapManager.destroy(); } stopService(mNetworkIntent); if (mActivities.size() > 0) { for (int i = 0; i < mActivities.size(); i++) { Activity activity = mActivities.get(i); if (null != activity) { activity.finish(); } } } ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); activityManager.killBackgroundProcesses(getPackageName()); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(10); } /** 初始化JPush */ private void initJPush() { JPushInterface.setDebugMode(true); JPushInterface.init(this); } private void startYunBaService() { YunBaManager.start(getApplicationContext()); IMqttActionListener listener = new IMqttActionListener() { public void onSuccess(IMqttToken asyncActionToken) { String topic = "123456";// DemoUtil.join(asyncActionToken.getTopics(), ","); System.out.println("Subscribe succeed : " + topic); // DemoUtil.showToast( "Subscribe succeed : " + topic, getApplicationContext()); StringBuilder showMsg = new StringBuilder(); showMsg.append("subscribe succ:") .append(YunBaManager.MQTT_TOPIC).append(" = ") .append(topic); } @Override public void onFailure(IMqttToken asyncActionToken, Throwable exception) { String msg = "Subscribe failed : " + exception.getMessage(); System.out.println("msg = " + msg); // DemoUtil.showToast(msg, getApplicationContext()); } }; // for test YunBaManager.subscribe(getApplicationContext(), new String[] { "t1", "t2", "t3" }, listener); // CoreManager.startService(getApplicationContext()); // CoreManager.startService(getApplicationContext()); // CoreManager.startService(getApplicationContext()); } }