package com.ztspeech.simutalk2.qa; import java.util.HashMap; import java.util.Map; import com.baidu.location.*; import com.ztspeech.recognizer.PhoneInfo; import com.ztspeech.simutalk2.R; import com.ztspeech.simutalk2.data.MsgGroupList; import com.ztspeech.simutalk2.data.MsgGroupTable; import com.ztspeech.simutalk2.data.TextPlayer; import com.ztspeech.simutalk2.data.TransDataBase; import com.ztspeech.simutalk2.data.TransTextTable; import com.ztspeech.simutalk2.data.UserInfo; import com.ztspeech.simutalk2.dictionary.dom.InitDataBase; import com.ztspeech.simutalk2.dictionary.dom.SQLiteDom; import com.ztspeech.simutalk2.exception.CrashHanlderExcetpion; import com.ztspeech.simutalk2.net.PostPackage; import android.app.Application; import android.content.Intent; import android.util.Log; import android.widget.TextView; import android.os.Handler; import android.os.Message; import android.os.Process; import android.os.Vibrator; public class Location extends Application { public LocationClient mLocationClient = null; private String mData; public MyLocationListenner myListener = new MyLocationListenner(); public TextView mTv; public NotifyLister mNotifyer=null; public Vibrator mVibrator01; public final static int GET_LOCATION = 10002; private MsgGroupTable mMsgGroupTable = MsgGroupTable.getInstance(); private UserInfo mUser = UserInfo.getInstanse(); private static TransDataBase mDatabase; private static MainActivity mInstance = null; public static TransTextTable mTableTransText; public static String isok2 = null; public static String isok = null; public Handler myHandler; public void setHandler(Handler myHandler){ this.myHandler = myHandler; } @Override public void onCreate() { mLocationClient = new LocationClient( getApplicationContext() ); mLocationClient.registerLocationListener( myListener ); super.onCreate(); Log.d("locSDK_Demo1", "... Application onCreate... pid=" + Process.myPid()); //��ʼ������log initCrash(); //��ʼ�����ݿ� if (mDatabase == null) { mDatabase = new TransDataBase(this.getApplicationContext(), "trans",5); mTableTransText = new TransTextTable("trans_text"); PhoneInfo.getInstance().initData(this); mDatabase.addTable(mMsgGroupTable); mDatabase.addTable(mUser); MsgGroupList.getInstance().load(); mUser.load(); } initMyDictionary(); initData(); TextPlayer.getInstance().init(this); TextPlayer.getInstance().error = getString(R.string.main_tts_error); TextPlayer.getInstance().cancel = getString(R.string.main_tts_cancel); PostPackage.setDefaultHost(getString(R.string.host_ip)); } public void initMyDictionary() { InitDataBase writeDBtoSDCard = new InitDataBase(this); isok2 = writeDBtoSDCard.writeDatabaseToPhone(); if (isok2.equals(getResources().getString(R.string.dbInit_Successfull))) { new SQLiteDom().openDB2(); isok = writeDBtoSDCard.writeDatabase(); new SQLiteDom().openDB1(); } else { // isok2 = writeDBtoSDCard.writeDatabaseToPhone(); } } public void initData() { mTableTransText.load(); mTableTransText.initRecord_Id(); } public void initCrash(){ CrashHanlderExcetpion.getInstance().init(this); } /** * ��ʾ�ַ��� * @param str */ public void logMsg(String str) { try { mData = str; if ( mTv != null ) mTv.setText(mData); } catch (Exception e) { e.printStackTrace(); } } /** * ��������������λ�õ�ʱ�򣬸�ʽ�����ַ������������Ļ�� */ public class MyLocationListenner implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { if (location == null) return ; Map mlocation = new HashMap<String, Object>(); double latitude = location.getLatitude(); double longitude = location.getLongitude(); mlocation.put("latitude", latitude); mlocation.put("longitude", longitude); Message msg = new Message(); msg.what = GET_LOCATION; msg.obj = mlocation; myHandler.sendMessage(msg); } public void onReceivePoi(BDLocation poiLocation) { if (poiLocation == null){ return ; } Map mlocation = new HashMap<String, Object>(); double latitude = poiLocation.getLatitude(); double longitude = poiLocation.getLongitude(); mlocation.put("latitude", latitude); mlocation.put("longitude", longitude); Message msg = new Message(); msg.what = GET_LOCATION; msg.obj = mlocation; myHandler.sendMessage(msg); } } /** * λ�����ѻص����� */ public class NotifyLister extends BDNotifyListener{ public void onNotify(BDLocation mlocation, float distance){ mVibrator01.vibrate(1000); } } }