Quellcode durchsuchen

【添加北京光宽带、实名登记、换卡易、智能终端到工作台中】

yuanhang vor 9 Jahren
Ursprung
Commit
f3e854abd5
33 geänderte Dateien mit 1219 neuen und 11 gelöschten Zeilen
  1. 1 5
      multiple-client/.classpath
  2. 9 0
      multiple-client/assets/mobile-action.xml
  3. 4 2
      multiple-client/assets/mobile-config.xml
  4. BIN
      multiple-client/libs/SmartCardSDK-1.1.jar
  5. BIN
      multiple-client/libs/armeabi-v7a/libCMCC_UNITDEVICE_EPS_EBG520-B.so
  6. BIN
      multiple-client/libs/armeabi-v7a/libOPSClient.so
  7. BIN
      multiple-client/libs/armeabi-v7a/libOPSLibReader.so
  8. BIN
      multiple-client/libs/armeabi/libCMCC_UNITDEVICE_EPS_EBG520-B.so
  9. BIN
      multiple-client/libs/armeabi/libOPSClient.so
  10. BIN
      multiple-client/libs/armeabi/libOPSLibReader.so
  11. 1 1
      multiple-client/project.properties
  12. 20 0
      multiple-client/src/com/ai/mobile/IpuApplication.java
  13. 2 2
      multiple-client/src/com/ai/mobile/multiple/SubAppActivity.java
  14. 159 0
      multiple-client/src/com/ai/mobile/simcard/SimCard.java
  15. 172 0
      multiple-client/src/com/ai/mobile/simcard/SimCardRunable.java
  16. 7 0
      multiple-client/src/com/ai/mobile/util/Constant.java
  17. 33 0
      multiple-client/src/com/cmcc/nativepackage/SimCard.java
  18. 721 0
      multiple-client/src/epsyl/phonecardwriter/funcjar/SimCardBuss.java
  19. 19 0
      multiple-server/etc/app-config.xml
  20. 1 1
      multiple-server/etc/memcache.properties
  21. 10 0
      multiple-server/web/biz/css/project.css
  22. BIN
      multiple-server/web/biz/img/project.ttf
  23. BIN
      multiple-server/web/biz/img/welcome-bukayi.jpg
  24. BIN
      multiple-server/web/biz/img/welcome-guangkuandai.jpg
  25. BIN
      multiple-server/web/biz/img/welcome-realname.jpg
  26. BIN
      multiple-server/web/biz/img/welcome-smartCRM.png
  27. 15 0
      multiple-server/web/welcome/Welcome-bukayi.htm
  28. 15 0
      multiple-server/web/welcome/Welcome-guangkuandai.htm
  29. 15 0
      multiple-server/web/welcome/Welcome-realname.htm
  30. 15 0
      multiple-server/web/welcome/Welcome-smartCRM.htm
  31. BIN
      wade-mobile-library/common/jdom1.0.jar
  32. BIN
      wade-mobile-library/common/quartz-all-1.6.6.jar
  33. BIN
      wade-mobile-library/common/wade-cache.jar

+ 1 - 5
multiple-client/.classpath

@ -5,10 +5,6 @@
5 5
	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
6 6
	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
7 7
	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
8
	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/wade-mobile"/>
9
	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/wade-mobile-data"/>
10
	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/wade-mobile-func"/>
11
	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/wade-mobile-im"/>
12
	<classpathentry combineaccessrules="false" exported="true" kind="src" path="/wade-mobile-ui"/>
8
	<classpathentry kind="lib" path="libs/SmartCardSDK-1.1.jar"/>
13 9
	<classpathentry kind="output" path="bin/classes"/>
14 10
</classpath>

+ 9 - 0
multiple-client/assets/mobile-action.xml

@ -100,4 +100,13 @@
100 100
	<action name="unregisterForPush" class="com.ai.mobile.im.func.MobilePush" method="unregisterForPush"></action>
101 101
	<action name="sendText" class="com.ai.mobile.im.func.MobilePush" method="sendText"></action>
102 102
	<action name="setCallbackForPush" class="com.ai.mobile.im.func.MobilePush" method="setCallbackForPush"></action>
103

104
	<!-- add yuanhang by bukayi.app-->
105
	<action name="configReaderUsb" class="com.ai.mobile.simcard.SimCard" method="configReader"></action>
106
	<action name="getVersionUsb" class="com.ai.mobile.simcard.SimCard" method="getVersion"></action>
107
	<action name="getCardSNUsb" class="com.ai.mobile.simcard.SimCard" method="getCardSN"></action>
108
	<action name="getCardInfoUsb" class="com.ai.mobile.simcard.SimCard" method="getCardInfo"></action>
109
	<action name="writeCardUsb" class="com.ai.mobile.simcard.SimCard" method="writeCard"></action>
110
	<action name="getModel" class="com.ai.mobile.simcard.SimCard" method="getModel"></action>
111

103 112
</actions>

+ 4 - 2
multiple-client/assets/mobile-config.xml

@ -1,9 +1,11 @@
1 1
<?xml version="1.0" encoding="utf-8"?>
2 2
<configs>
3 3
    <!-- 请求主机名或请求地址。包括服务器的ip地址和端口 -->
4
	<!-- <config name="request_host" value="http://192.168.1.102:8080"/> -->
5
	<!-- 必须。10.0.2.2为Android模拟器的保留ip地址。访问到本机电脑时使用 -->
4
	<!-- 
6 5
	<config name="request_host" value="http://10.0.2.2:8080"/>
6
	-->
7
	<!-- 必须。10.0.2.2为Android模拟器的保留ip地址。访问到本机电脑时使用 -->
8
	<config name="request_host" value="http://192.168.1.108:18080"/> 
7 9
	<!-- 必须。容器应用名或请求根路径 -->
8 10
	<config name="request_path" value="/mult"/>
9 11
	<!-- 必须。数据接口的servlet路径 -->

BIN
multiple-client/libs/SmartCardSDK-1.1.jar


BIN
multiple-client/libs/armeabi-v7a/libCMCC_UNITDEVICE_EPS_EBG520-B.so


BIN
multiple-client/libs/armeabi-v7a/libOPSClient.so


BIN
multiple-client/libs/armeabi-v7a/libOPSLibReader.so


BIN
multiple-client/libs/armeabi/libCMCC_UNITDEVICE_EPS_EBG520-B.so


BIN
multiple-client/libs/armeabi/libOPSClient.so


BIN
multiple-client/libs/armeabi/libOPSLibReader.so


+ 1 - 1
multiple-client/project.properties

@ -13,4 +13,4 @@
13 13
# Project target.
14 14
target=android-15
15 15
android.library.reference.1=..\\wade-mobile-lib
16
android.library.reference.2=../../android/wade-mobile-com
16
android.library.reference.2=../wade-mobile-common

+ 20 - 0
multiple-client/src/com/ai/mobile/IpuApplication.java

@ -0,0 +1,20 @@
1
package com.ai.mobile;
2

3
public class IpuApplication{
4
	
5
	public static boolean SIMCARD_CONFIGREADER_FLAG;
6
	public static boolean SIMCARD_GETVERSION_FLAG;
7
	public static boolean SIMCARD_GETCARDINFO_FLAG;
8
	public static boolean SIMCARD_GETCARDSN_FLAG;
9
	public static boolean SIMCARD_WRITECARD_FLAG;
10

11
	static {
12
		SIMCARD_CONFIGREADER_FLAG = false;
13
		SIMCARD_GETVERSION_FLAG = false;
14
		SIMCARD_GETCARDSN_FLAG = false;
15
		SIMCARD_GETCARDINFO_FLAG = false;
16
		SIMCARD_WRITECARD_FLAG = false;
17
	}
18

19
    
20
}

+ 2 - 2
multiple-client/src/com/ai/mobile/multiple/SubAppActivity.java

@ -93,12 +93,12 @@ public class SubAppActivity extends TemplateMainActivity{
93 93
	
94 94
	/**
95 95
	 * 第二次进入则不使用欢迎页的延时配置
96
	 *//*
96
	 */
97 97
	@Override
98 98
	protected boolean isUseLoadingTime() {
99 99
		// TODO Auto-generated method stub
100 100
		return firstStatus.get(MultipleManager.getCurrAppId()) == null;
101
	}*/
101
	}
102 102
	
103 103
	/**
104 104
	 * 重写指定欢迎页,不同应用使用不同的欢迎页

+ 159 - 0
multiple-client/src/com/ai/mobile/simcard/SimCard.java

@ -0,0 +1,159 @@
1
package com.ai.mobile.simcard;
2

3
import org.json.JSONArray;
4
import org.json.JSONException;
5
import org.json.JSONObject;
6

7
import android.os.Bundle;
8
import android.os.Handler;
9
import android.os.Message;
10

11
import com.ai.mobile.IpuApplication;
12
import com.ai.mobile.util.Constant;
13
import com.wade.mobile.frame.IWadeMobile;
14
import com.wade.mobile.frame.plugin.Plugin;
15
import com.wade.mobile.util.Messages;
16

17
public class SimCard extends Plugin {
18

19
	public SimCard(IWadeMobile wademobile) {
20
		super(wademobile);
21
	}
22

23
	private Handler handler = new Handler() {
24
		public void handleMessage(Message paramMessage) {
25
			switch (paramMessage.what) {
26
			case Constant.SIMCARD_SUCCESS:
27
				if (IpuApplication.SIMCARD_CONFIGREADER_FLAG) {
28
					IpuApplication.SIMCARD_CONFIGREADER_FLAG = false;
29
					callback("");
30
					break;
31
				}
32
				if (IpuApplication.SIMCARD_GETVERSION_FLAG) {
33
					Bundle data = paramMessage.getData();
34
					String version = data.getString("version");
35
					IpuApplication.SIMCARD_GETVERSION_FLAG = false;
36
					JSONObject json = new JSONObject();
37
					try {
38
						json.put("CODE", "00");
39
						json.put("VALUE", version);
40
					} catch (JSONException e) {
41
						e.printStackTrace();
42
					}
43
					callback(json.toString());
44
					break;
45
				}
46
				if (IpuApplication.SIMCARD_GETCARDSN_FLAG) {
47
					Bundle data = paramMessage.getData();
48
					String cardSN = data.getString("cardSN");
49
					IpuApplication.SIMCARD_GETCARDSN_FLAG = false;
50
					JSONObject json = new JSONObject();
51
					try {
52
						json.put("CODE", "00");
53
						json.put("VALUE", cardSN);
54
					} catch (JSONException e) {
55
						e.printStackTrace();
56
					}
57
					callback(json.toString());
58
					break;
59
				}
60
				if (IpuApplication.SIMCARD_GETCARDINFO_FLAG) {
61
					Bundle data = paramMessage.getData();
62
					String cardInfo = data.getString("cardInfo");
63
					IpuApplication.SIMCARD_GETCARDINFO_FLAG = false;
64
					JSONObject json = new JSONObject();
65
					try {
66
						json.put("CODE", "00");
67
						json.put("VALUE", cardInfo);
68
					} catch (JSONException e) {
69
						e.printStackTrace();
70
					}
71
					callback(json.toString());
72
					break;
73
				}
74
				if (IpuApplication.SIMCARD_WRITECARD_FLAG) {
75
					Bundle data = paramMessage.getData();
76
					String result = data.getString("result");
77
					IpuApplication.SIMCARD_WRITECARD_FLAG = false;
78
					JSONObject json = new JSONObject();
79
					try {
80
						json.put("CODE", "00");
81
						json.put("VALUE", result);
82
					} catch (JSONException e) {
83
						e.printStackTrace();
84
					}
85
					callback(json.toString());
86
					break;
87
				}
88
				break;
89
			case Constant.SIMCARD_ERROR:
90
				Bundle data = paramMessage.getData();
91
				String errMsg = data.getString("errMsg");
92
				int errCode = data.getInt("errCode");
93
				IpuApplication.SIMCARD_CONFIGREADER_FLAG = false;
94
				IpuApplication.SIMCARD_GETVERSION_FLAG = false;
95
				IpuApplication.SIMCARD_GETCARDSN_FLAG = false;
96
				IpuApplication.SIMCARD_GETCARDINFO_FLAG = false;
97
				IpuApplication.SIMCARD_WRITECARD_FLAG = false;
98
				JSONObject json = new JSONObject();
99
				try {
100
					json.put("CODE", "99");
101
					json.put("ERRCODE", errCode);
102
					json.put("VALUE", errMsg);
103
				} catch (JSONException e) {
104
					e.printStackTrace();
105
				}
106
				callback(json.toString());
107
				break;
108
			}
109
		}
110
	};
111

112
	public void configReader(JSONArray param) throws Exception {
113
		IpuApplication.SIMCARD_CONFIGREADER_FLAG = true;
114
		SimCardRunable SimCardRunable = new SimCardRunable(this.context, 2,
115
				"".toCharArray(), "".toCharArray(), "".toCharArray(),
116
				this.handler);
117
		SimCardRunable.run();
118
	}
119

120
	public void getCardSN(JSONArray param) throws Exception {
121
		IpuApplication.SIMCARD_GETCARDSN_FLAG = true;
122
		SimCardRunable SimCardRunable = new SimCardRunable(this.context, 2,
123
				"".toCharArray(), "".toCharArray(), "".toCharArray(),
124
				this.handler);
125
		SimCardRunable.run();
126
	}
127

128
	public void getCardInfo(JSONArray param) throws Exception {
129
		IpuApplication.SIMCARD_GETCARDINFO_FLAG = true;
130
		SimCardRunable SimCardRunable = new SimCardRunable(this.context, 2,
131
				"".toCharArray(), "".toCharArray(), "".toCharArray(),
132
				this.handler);
133
		SimCardRunable.run();
134
	}
135

136
	public void writeCard(JSONArray param) throws Exception {
137
		if (param.length() < 1) {
138
			throw new Exception(Messages.EXCEPTION_PARAM);
139
		}
140
		String issueData = param.getString(0);
141
		IpuApplication.SIMCARD_WRITECARD_FLAG = true;
142
		SimCardRunable SimCardRunable = new SimCardRunable(this.context, 2,
143
				"".toCharArray(), "".toCharArray(), issueData.toCharArray(),
144
				this.handler);
145
		SimCardRunable.run();
146
	}
147

148
	public void getVersion(JSONArray param) throws Exception {
149
		IpuApplication.SIMCARD_GETVERSION_FLAG = true;
150
		SimCardRunable SimCardRunable = new SimCardRunable(this.context, 2,
151
				"".toCharArray(), "".toCharArray(), "".toCharArray(),
152
				this.handler);
153
		SimCardRunable.run();
154
	}
155

156
	public void getModel(JSONArray params) throws Exception {
157
		callback(android.os.Build.MODEL);
158
	}
159
}

+ 172 - 0
multiple-client/src/com/ai/mobile/simcard/SimCardRunable.java

@ -0,0 +1,172 @@
1
package com.ai.mobile.simcard;
2

3
import java.io.UnsupportedEncodingException;
4

5
import android.app.Activity;
6
import android.os.Bundle;
7
import android.os.Handler;
8
import android.os.Message;
9

10
import com.ai.mobile.IpuApplication;
11
import com.ai.mobile.util.Constant;
12
import com.cmcc.nativepackage.SimCard;
13

14
import epsyl.phonecardwriter.funcjar.SimCardBuss;
15

16
public class SimCardRunable implements Runnable {
17

18
	private char[] cardSN = new char[30];
19
	private char[] deviceID;
20
	private int deviceType = -1;
21
	private Handler handler;
22
	private char[] passwd;
23
	private char[] version = new char[10];
24
	private char[] cardInfo = new char[100];
25
	private char[] result = new char[50];
26
	private char[] errMsg = new char[100];
27
	private char[] issueData;
28
	public  Activity mSimcontext;
29
	int retCode;
30

31
	public SimCardRunable(Activity context, int deviceType, char[] deviceID, char[] passwd, char[] issueData,
32
			Handler handler) {
33
		this.handler = handler;
34
		this.deviceID = deviceID;
35
		this.deviceType = deviceType;
36
		this.passwd = passwd;
37
		this.issueData = issueData;
38
		this.mSimcontext = context;
39
	}
40

41
	private int configReader() {
42
		int ret = -1;
43
		ret = SimCard.ConfigReader(2, deviceID, passwd);
44
		return ret;
45
	}
46
	
47
	private int getVersion() {
48
		int ret = -1;
49
		ret = SimCard.GetOPSVersion(version);
50
		return ret;
51
	}
52
	
53
	private int getCardSN() {
54
		SimCardBuss.isGetPermision = 0;
55
		int ret = -1;
56
		ret = SimCard.GetCardSN(cardSN);
57
		return ret;
58
	}
59
	
60
	private int getCardInfo() {
61
		int ret = -1;
62
		ret = SimCard.GetCardInfo(cardInfo);
63
		return ret;
64
	}
65
	
66
	private int writeCard() {
67
		int ret = -1;	    
68
		ret = SimCard.WriteCard(issueData, result);
69
		return ret;
70
	}
71
	
72
	private int getOPSErrorMsg(int errorCode) {
73
		int ret = -1;	    
74
		ret = SimCard.GetOPSErrorMsg(errorCode, errMsg);
75
		return ret;
76
	}
77

78
	@Override
79
	public void run() {
80
		if (IpuApplication.SIMCARD_CONFIGREADER_FLAG) {
81
			SimCardBuss.setContext(mSimcontext);
82
			retCode = configReader();
83
			if (retCode == 0) {
84
				handler.sendEmptyMessage(Constant.SIMCARD_SUCCESS);
85
				return;
86
			}
87
		}
88
		if (IpuApplication.SIMCARD_GETVERSION_FLAG) {
89
			retCode = getVersion();
90
			if (retCode == 0) {
91
				Bundle bundle = new Bundle();
92
				Message msg = new Message();
93
				msg.what = Constant.SIMCARD_SUCCESS;
94
				bundle.putString("version", new String(version).trim());
95
				msg.setData(bundle);
96
				handler.sendMessage(msg);
97
				return;
98
			}
99
		}
100
		if (IpuApplication.SIMCARD_GETCARDSN_FLAG) {
101
			retCode = getCardSN();
102
			if (retCode == 0) {
103
				Bundle bundle = new Bundle();
104
				Message msg = new Message();
105
				msg.what = Constant.SIMCARD_SUCCESS;
106
				bundle.putString("cardSN", new String(cardSN).trim());
107
				msg.setData(bundle);
108
				handler.sendMessage(msg);
109
				return;
110
			}else if (SimCardBuss.isOpenedCardReader == 0 && SimCardBuss.isGetPermision == 1) {
111
				Bundle bundle = new Bundle();
112
				Message msg = new Message();
113
				msg.what = Constant.SIMCARD_ERROR;
114
				bundle.putString("errMsg", "打开外设时异常,错误信息:"+SimCardBuss.errmsg);
115
				msg.setData(bundle);
116
				handler.sendMessage(msg);
117
				return;
118
			}else if (SimCardBuss.isCardIn == 0 && SimCardBuss.isGetPermision == 1) {
119
				Bundle bundle = new Bundle();
120
				Message msg = new Message();
121
				msg.what = Constant.SIMCARD_ERROR;
122
				bundle.putString("errMsg", "未检测到卡片,请检查!");
123
				msg.setData(bundle);
124
				handler.sendMessage(msg);
125
				return;
126
			}
127
		}
128
		if (IpuApplication.SIMCARD_GETCARDINFO_FLAG) {
129
			retCode = getCardInfo();
130
			if (retCode == 0) {
131
				Bundle bundle = new Bundle();
132
				Message msg = new Message();
133
				msg.what = Constant.SIMCARD_SUCCESS;
134
				bundle.putString("cardInfo", new String(cardInfo).trim());
135
				msg.setData(bundle);
136
				handler.sendMessage(msg);
137
				return;
138
			}
139
		}
140
		if (IpuApplication.SIMCARD_WRITECARD_FLAG) {
141
			retCode = writeCard();
142
			if (retCode == 0) {
143
				Bundle bundle = new Bundle();
144
				Message msg = new Message();
145
				msg.what = Constant.SIMCARD_SUCCESS;
146
				bundle.putString("result", new String(result).trim());
147
				msg.setData(bundle);
148
				handler.sendMessage(msg);
149
				return;
150
			}
151
		}
152
		if (retCode != 0) {
153
			getOPSErrorMsg(retCode);
154
			Bundle bundle = new Bundle();
155
			Message msg = new Message();
156
			msg.what = Constant.SIMCARD_ERROR;
157
			byte[] bb = new byte[errMsg.length];			
158
			for (int i = 0; i < errMsg.length; i++) {
159
	            bb[i] = (byte) errMsg[i];
160
	        }
161
			try {
162
				bundle.putString("errMsg", new String(bb, "GBK").trim());
163
			} catch (UnsupportedEncodingException e) {
164
				// TODO Auto-generated catch block
165
				e.printStackTrace();
166
			}
167
			bundle.putInt("errCode", retCode);
168
			msg.setData(bundle);
169
			handler.sendMessage(msg);
170
		}
171
	}
172
}

+ 7 - 0
multiple-client/src/com/ai/mobile/util/Constant.java

@ -0,0 +1,7 @@
1
package com.ai.mobile.util;
2

3
public class Constant {
4
	public static final int SIMCARD_ERROR = 9999;
5
	public static final int SIMCARD_SUCCESS = 0;
6
	public static final int KEYBOARD = 111;
7
}

+ 33 - 0
multiple-client/src/com/cmcc/nativepackage/SimCard.java

@ -0,0 +1,33 @@
1
package com.cmcc.nativepackage;
2

3
/**
4
 * @author 作者 E-mail: WangJC
5
 * @version 创建时间:2013-10-12 上午11:11:25 <br>
6
 *          类说明 统一写卡组件
7
 *          <p>
8
 *          so库文件名:OPSLibReader.so
9
 */
10
public class SimCard {
11

12
	static {
13
		System.loadLibrary("OPSLibReader");
14
		System.loadLibrary("OPSClient");
15
		System.loadLibrary("CMCC_UNITDEVICE_EPS_EBG520-B");
16
	}
17

18
	public static native int ConfigReader(int ReaderType, char[] DeviceID,
19
			char[] Password);
20

21
	public static native int GetOPSVersion(char[] Version);
22

23
	public static native int GetCardSN(char[] CardSN);
24

25
	public static native int GetCardInfo(char[] CardInfo);
26

27
	public static native int WriteCard(char[] IssueData, char[] Result);
28

29
	public static native int GetOPSErrorMsg(int ErrorCode, char[] ErrorMsg);
30

31
	public static native int GetICCIDData(char[] ICCID);
32

33
}

+ 721 - 0
multiple-client/src/epsyl/phonecardwriter/funcjar/SimCardBuss.java

@ -0,0 +1,721 @@
1
package epsyl.phonecardwriter.funcjar;
2

3
import android.app.Activity;
4
import android.app.PendingIntent;
5
import android.content.BroadcastReceiver;
6
import android.content.Context;
7
import android.content.Intent;
8
import android.content.IntentFilter;
9
import android.hardware.usb.UsbDevice;
10
import android.hardware.usb.UsbManager;
11
import android.os.AsyncTask;
12
import android.util.Log;
13
import android.widget.Spinner;
14
import android.widget.Toast;
15

16
import com.android.smartcard.Reader;
17
import com.android.smartcard.Reader.OnStateChangeListener;
18

19
public class SimCardBuss {
20
	private static final String TAG = SimCardBuss.class.getSimpleName();
21
	public static UsbManager usbManager = null;
22
	public static Reader mReader;
23
	// private Context context;
24
	public static int isGetPermision = 0;
25
	public static int isOpenedCardReader = 0;
26
	public static int isCardIn = 0;
27
	public static Context activity = null;
28
	private int currentSlot = -1;
29
	private int currentState = -1;
30
	private int befor_prevState = -1;
31
	private PendingIntent mPermissionIntent;
32
	private static final String ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
33
	private static final String[] stateStrings = { "Unknown", "Absent",
34
			"Present", "Swallowed", "Powered", "Negotiable", "Specific" };
35
	public static String errmsg = "";
36

37
	public static void setContext(Context context) {
38
		SimCardBuss.activity = context;
39
	}
40

41
	public static void exit() {
42
//		usbManager = null;
43
//		mReader = null;			
44
	}
45

46
	public SimCardBuss() {
47
		// if (null == usbManager) {
48
		// if (null != activity) {
49
		// usbManager = (UsbManager) activity
50
		// .getSystemService(Context.USB_SERVICE);
51
		// } else {
52
		// Log.e(TAG, "context == null");
53
		// return;
54
		// }
55
		//
56
		// }
57
		//
58
		// // Initialize reader
59
		// if (null == mReader) {
60
		// mReader = new Reader(usbManager);
61
		// mReader.setOnStateChangeListener(new OnStateChangeListener() {
62
		//
63
		// public void onStateChange(int slotNum, int prevState,
64
		// int currState) {
65
		//
66
		// if (prevState < Reader.CARD_UNKNOWN
67
		// || prevState > Reader.CARD_SPECIFIC) {
68
		// prevState = Reader.CARD_UNKNOWN;
69
		// }
70
		//
71
		// if (currState < Reader.CARD_UNKNOWN
72
		// || currState > Reader.CARD_SPECIFIC) {
73
		// currState = Reader.CARD_UNKNOWN;
74
		// }
75
		//
76
		// // Create output string
77
		// String outputString = "Slot " + slotNum + ": "
78
		// + stateStrings[prevState] + " -> "
79
		// + stateStrings[currState];
80
		// currentSlot = slotNum;
81
		// currentState = currState;
82
		// befor_prevState = prevState;
83
		// // System.out.println("状态变化:outputString = " + outputString);
84
		// ((Activity) activity).runOnUiThread(new Runnable() {
85
		//
86
		// @Override
87
		// public void run() {
88
		// // TODO Auto-generated method stub
89
		// if (currentState == 1) {
90
		// // myEpSusbListener.onCardOut();
91
		// // System.out.println("卡片被拔出");
92
		// } else if (currentState == 2) {
93
		// // myEpSusbListener.onCardIn();
94
		// // System.out.println("卡片被插入");
95
		// }
96
		// }
97
		// });
98
		//
99
		// }
100
		// });
101
		// }
102
		// // Register receiver for USB permission
103
		// mPermissionIntent = PendingIntent.getBroadcast(activity, 0, new
104
		// Intent(
105
		// ACTION_USB_PERMISSION), 0);
106
		// IntentFilter filter = new IntentFilter();
107
		// filter.addAction(ACTION_USB_PERMISSION);
108
		// filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
109
		// activity.registerReceiver(mReceiver, filter);
110
	}
111

112
	public int openCardReader() throws Exception {
113
		// =============
114
		if (null == usbManager) {
115
			if (null != activity) {
116
				usbManager = (UsbManager) activity
117
						.getSystemService(Context.USB_SERVICE);
118
			} else {
119
				Log.e(TAG, "context == null");
120
			}
121

122
		}
123

124
		// Initialize reader
125
		if (null == mReader) {
126
			mReader = new Reader(usbManager);
127
			mReader.setOnStateChangeListener(new OnStateChangeListener() {
128

129
				public void onStateChange(int slotNum, int prevState,
130
						int currState) {
131

132
					if (prevState < Reader.CARD_UNKNOWN
133
							|| prevState > Reader.CARD_SPECIFIC) {
134
						prevState = Reader.CARD_UNKNOWN;
135
					}
136

137
					if (currState < Reader.CARD_UNKNOWN
138
							|| currState > Reader.CARD_SPECIFIC) {
139
						currState = Reader.CARD_UNKNOWN;
140
					}
141

142
					// Create output string
143
					String outputString = "Slot " + slotNum + ": "
144
							+ stateStrings[prevState] + " -> "
145
							+ stateStrings[currState];
146
					currentSlot = slotNum;
147
					currentState = currState;
148
					befor_prevState = prevState;
149
					// System.out.println("状态变化:outputString = " +
150
					// outputString);
151
					((Activity) activity).runOnUiThread(new Runnable() {
152

153
						@Override
154
						public void run() {
155
							// TODO Auto-generated method stub
156
							if (currentState == 1) {
157
								// myEpSusbListener.onCardOut();
158
								// System.out.println("卡片被拔出");
159
								isCardIn = 0;
160
								Toast.makeText(activity, "SIM卡已拔出!",
161
										Toast.LENGTH_SHORT).show();
162
							} else if (currentState == 2) {
163
								// myEpSusbListener.onCardIn();
164
								// System.out.println("卡片被插入");
165
								isCardIn = 1;
166
								Toast.makeText(activity, "SIM卡已插入!",
167
										Toast.LENGTH_SHORT).show();
168
							}
169
						}
170
					});
171

172
				}
173
			});
174
		}
175
		// Register receiver for USB permission
176
		mPermissionIntent = PendingIntent.getBroadcast(activity, 0, new Intent(
177
				ACTION_USB_PERMISSION), 0);
178
		IntentFilter filter = new IntentFilter();
179
		filter.addAction(ACTION_USB_PERMISSION);
180
		filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
181
		activity.registerReceiver(mReceiver, filter);
182

183
		// =================
184

185
		int ret_configReader = -1;
186
		System.out.println("openCardReader");
187
		String deviceName = "";
188
		for (UsbDevice device : usbManager.getDeviceList().values()) {
189
			if (mReader.isSupported(device)) {
190
				Log.i(TAG, device.getDeviceName());
191
				deviceName = device.getDeviceName();
192
			}
193
		}
194
		if (deviceName != null && !"".equals(deviceName)) {
195

196
			for (UsbDevice device : usbManager.getDeviceList().values()) {
197

198
				if (deviceName.equals(device.getDeviceName())) {
199

200
					usbManager.requestPermission(device, mPermissionIntent);
201
					ret_configReader = 0;
202
					break;
203
				}
204
			}
205
		} else {
206
			setIsGetPermision(0);
207
			setIsOpened(0);
208
			setIsCardIn(0);
209
			Toast.makeText(activity, "没有检测到外设,请确认手机是否支持OTG功能!【判别方法:写卡器插入支持OTG功能的手机,设备正面底部绿灯会连续慢闪!】",
210
					Toast.LENGTH_SHORT).show();
211
			//throw new Exception("没有检测到外设,请确认手机是否支持OTG功能!【判别方法:写卡器插入支持OTG功能的手机,设备正面底部绿灯会连续慢闪!】");
212
		}
213
		System.out.println("openCardReader end,ret_configReader = "
214
				+ ret_configReader);
215

216
		return ret_configReader;
217
	}
218

219
	public int getIsGetPermision() {
220
		return isGetPermision;
221
	}
222

223
	public static void setIsGetPermision(int misGetPermision) {
224
		isGetPermision = misGetPermision;
225
	}
226

227
	public int getIsCardReaderOpened() {
228
		return isOpenedCardReader;
229
	}
230

231
	public static void setIsOpened(int misopened) {
232
		isOpenedCardReader = misopened;
233
	}
234
		
235
	public static String getErrmsg() {
236
		return errmsg;
237
	}
238

239
	public static void setErrmsg(String errmsg) {
240
		SimCardBuss.errmsg = errmsg;
241
	}
242

243
	public static int getIsCardIn() {
244
		return isCardIn;
245
	}
246

247
	public static void setIsCardIn(int isCardIn) {
248
		SimCardBuss.isCardIn = isCardIn;
249
	}
250

251
	public byte[] CardPowerOn() throws InterruptedException {
252
		// ======在此执行打开操作===============
253
		// String deviceName = "";
254
		// for (UsbDevice device : usbManager.getDeviceList().values()) {
255
		// if (mReader.isSupported(device)) {
256
		// Log.i(TAG, device.getDeviceName());
257
		// deviceName = device.getDeviceName();
258
		// }
259
		// }
260
		// if (deviceName != null) {
261
		//
262
		// for (UsbDevice device : usbManager.getDeviceList().values()) {
263
		//
264
		// if (deviceName.equals(device.getDeviceName())) {
265
		//
266
		// new OpenTask().execute(device);
267
		// break;
268
		// }
269
		// if (mReader.isOpened()) {
270
		// break;
271
		// }
272
		// }
273
		// } else {
274
		// return null;
275
		// }
276
		// ===============================
277
		// =====================
278
		System.out.println("CardPowerOn");
279
		// int slotNum = mListSlot[0];
280
		int slotNum = 0;
281
		PowerResult prresult = null;
282
		System.out.println("slotNum =" + slotNum);
283

284
		// Get action number
285
		// int actionNum = Reader.CARD_WARM_RESET;
286
		int actionNum = 2;
287

288
		if (slotNum != -1 && actionNum != -1) {
289

290
			if (actionNum < Reader.CARD_POWER_DOWN
291
					|| actionNum > Reader.CARD_WARM_RESET) {
292
				actionNum = Reader.CARD_WARM_RESET;
293
			}
294

295
			// Set parameters
296
			final PowerParams params = new PowerParams();
297
			params.slotNum = slotNum;
298
			params.action = actionNum;
299
			prresult = new PowerResult();
300
			System.out.println(" before mReader.power");
301
			try {
302
				if (!mReader.isOpened()) {
303
				}
304
				prresult.atr = mReader.power(params.slotNum, params.action);
305
				// 上电时写卡器未打开
306
			} catch (Exception e) {
307
				prresult.e = e;
308
				System.out.println("power:" + e.toString());
309
				return null;
310
			}
311
			if (null != prresult.atr) {
312
			} else {
313
				System.out.println("atr==null");
314
				return null;
315
			}
316

317
		} else {
318
			// myEpSusbListener.onCardPowerFailed("");
319
			return null;
320
		}
321

322
		// If slot is selected
323
		if (slotNum != -1) {
324

325
			int preferredProtocols = Reader.PROTOCOL_UNDEFINED;
326
			String preferredProtocolsString = "";
327
			if (true) {
328
				preferredProtocols |= Reader.PROTOCOL_T0;
329
				preferredProtocolsString = "T=0";
330
			}
331
			if (true) {
332
				preferredProtocols |= Reader.PROTOCOL_T1;
333
				if (preferredProtocolsString != "") {
334
					preferredProtocolsString += "/";
335
				}
336
				preferredProtocolsString += "T=1";
337
			}
338

339
			if (preferredProtocolsString == "") {
340
				preferredProtocolsString = "None";
341
			}
342

343
			// Set Parameters
344
			SetProtocolParams params_prototal = new SetProtocolParams();
345
			params_prototal.slotNum = slotNum;
346
			params_prototal.preferredProtocols = preferredProtocols;
347

348
			SetProtocolResult result_protocal = new SetProtocolResult();
349

350
			try {
351
				result_protocal.activeProtocol = mReader.setProtocol(
352
						params_prototal.slotNum,
353
						params_prototal.preferredProtocols);
354
			} catch (Exception e) {
355
				prresult.e = e;
356
			}
357
		}
358
		System.out.println("123");
359

360
		String ret_atr = "";
361
		for (int i = 0; i < 5; i++) {
362
			if (null == ret_atr || "".equals(ret_atr)) {
363
				System.out
364
						.println("result.atr.length = " + prresult.atr.length);
365
				ret_atr = byteToHexString(prresult.atr, prresult.atr.length);
366
				System.out.println("java cardpoweron suc,atr = ");
367
				// myEpSusbListener.onCardPowerSuc(ret_atr);
368
			}
369

370
		}
371
		System.out.println("ret_atr = " + ret_atr);
372
		return ret_atr.getBytes();
373
	}// CardPowerOn end
374

375
	public byte[] getATR() {
376

377
		return null;
378
	}
379

380
	public byte[] sendApduCommand(int CmdInLength, String CommandIn,
381
			int CmdOutLength, String CommandOut) {
382
		String commresponse = null;
383
		// int slotNum = mListSlot[0];
384
		int slotNum = 0;
385
		if (slotNum != Spinner.INVALID_POSITION) {
386
			TransmitParams params = new TransmitParams();
387
			params.slotNum = slotNum;
388
			params.controlCode = -1;
389
			params.commandString = CommandIn;
390
			TransmitProgress progress = new TransmitProgress();
391
			byte[] command;
392
			byte[] response = new byte[1000];
393
			int responseLength;
394
			int foundIndex;
395
			int startIndex = 0;
396

397
			do {
398
				foundIndex = params.commandString.indexOf('\n', startIndex);
399
				if (foundIndex >= 0) {
400
					command = toByteArray(params.commandString.substring(
401
							startIndex, foundIndex));
402
				} else {
403
					command = toByteArray(params.commandString
404
							.substring(startIndex));
405
				}
406

407
				startIndex = foundIndex + 1;
408

409
				try {
410

411
					if (params.controlCode < 0) {
412
						responseLength = mReader.transmit(params.slotNum,
413
								command, command.length, response,
414
								response.length);
415

416
					} else {
417
						responseLength = mReader.control(params.slotNum,
418
								params.controlCode, command, command.length,
419
								response, response.length);
420
					}
421

422
					progress.command = command;
423
					progress.commandLength = command.length;
424
					progress.response = response;
425
					progress.responseLength = responseLength;
426
					progress.e = null;
427

428
				} catch (Exception e) {
429

430
					progress.command = null;
431
					progress.commandLength = 0;
432
					progress.response = null;
433
					progress.responseLength = 0;
434
					progress.e = e;
435
				}
436

437
			} while (foundIndex >= 0);
438
			try {
439
				Thread.sleep(400);
440
			} catch (InterruptedException e) {
441
				// TODO Auto-generated catch block
442
				e.printStackTrace();
443
			}
444
			commresponse = byteToHexString(progress.response,
445
					progress.responseLength);
446
			System.out.println("progress.responseLength="
447
					+ progress.responseLength);
448
			int timesRead = 0;
449
			while ("".equals(commresponse) || null == commresponse) {
450
				commresponse = byteToHexString(progress.response,
451
						progress.responseLength);
452
				try {
453
					Thread.sleep(200);
454
				} catch (InterruptedException e) {
455
					// TODO Auto-generated catch block
456
					e.printStackTrace();
457
				}
458
				timesRead++;
459
				if (55 == timesRead) {
460
					break;
461
				}
462
			}
463

464
		}
465

466
		return commresponse.getBytes();
467
	}
468

469
	public int cardPowerOff() {
470

471
		// mReader.close();
472
		// myEpSusbListener.onClosed();
473
		return 0;
474
	}
475

476
	public int CloseCardReader() {
477

478
		return 0;
479
	}
480

481
	private BroadcastReceiver mReceiver = new BroadcastReceiver() {
482

483
		public void onReceive(final Context context, Intent intent) {
484

485
			String action = intent.getAction();
486

487
			if (ACTION_USB_PERMISSION.equals(action)) {
488
				synchronized (this) {
489

490
					final UsbDevice device = (UsbDevice) intent
491
							.getParcelableExtra(UsbManager.EXTRA_DEVICE);
492

493
					if (intent.getBooleanExtra(
494
							UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
495
						Thread thread = new Thread(new Runnable() {
496

497
							@Override
498
							public void run() {
499
								// TODO Auto-generated method stub
500
								setIsGetPermision(1);
501
								if (device != null) {
502
									Exception result = null;
503

504
									try {
505
										mReader.open(device);
506
									} catch (Exception e) {
507
										result = e;
508
									}
509
									if (result != null) {
510
										System.out
511
												.println("OpenTask-->onPostExecute"
512
														+ result.toString());
513
										errmsg = result.toString();
514
										setIsOpened(0);
515
									} else {
516
										setIsOpened(1);
517
									}
518
								}
519
							}
520
						});
521
						thread.start();
522

523
					} else {
524
						Thread thread = new Thread(new Runnable() {
525

526
							@Override
527
							public void run() {
528
								// TODO Auto-generated method stub
529
								setIsGetPermision(0);
530
							}
531
						});
532
						thread.start();
533

534
					}
535
				}
536

537
			} else if (UsbManager.ACTION_USB_DEVICE_DETACHED.equals(action)) {
538
				Thread thread = new Thread(new Runnable() {
539

540
					@Override
541
					public void run() {
542
						// TODO Auto-generated method stub
543
						context.unregisterReceiver(mReceiver);
544
						if (mReader != null) {
545
							 mReader = null;
546
						}
547
						setIsCardIn(0);
548
						setIsGetPermision(0);
549
						setIsOpened(0);
550
					}
551
				});
552
				thread.start();
553
//				synchronized (this) {
554
//					context.unregisterReceiver(mReceiver);
555
//					// mReader.close();
556
//					setIsGetPermision(0);
557
//					setIsOpened(0);
558
//
559
//				}
560
			}
561
		}
562
	};
563

564
	private static int[] mListSlot;
565

566
	private class OpenTask extends AsyncTask<UsbDevice, Void, Exception> {
567

568
		@Override
569
		protected Exception doInBackground(UsbDevice... params) {
570

571
			Exception result = null;
572

573
			try {
574
				mReader.open(params[0]);
575
			} catch (Exception e) {
576
				result = e;
577
			}
578
			return result;
579
		}
580

581
		@Override
582
		protected void onPostExecute(Exception result) {
583

584
			if (result != null) {
585
				System.out.println("OpenTask-->onPostExecute,"
586
						+ result.toString());
587
				Thread thread = new Thread(new Runnable() {
588

589
					@Override
590
					public void run() {
591
						// TODO Auto-generated method stub
592
						setIsOpened(0);
593
					}
594
				});
595
				thread.start();
596
			} else {
597
				Thread thread = new Thread(new Runnable() {
598

599
					@Override
600
					public void run() {
601
						// TODO Auto-generated method stub
602
						setIsOpened(1);
603
					}
604
				});
605
				thread.start();
606
			}
607
		}
608
	}
609

610
	private class PowerParams {
611

612
		public int slotNum;
613
		public int action;
614
	}
615

616
	private class PowerResult {
617

618
		public byte[] atr;
619
		public Exception e;
620
	}
621

622
	private class SetProtocolParams {
623

624
		public int slotNum;
625
		public int preferredProtocols;
626
	}
627

628
	private class SetProtocolResult {
629

630
		public int activeProtocol;
631
		public Exception e;
632
	}
633

634
	private class TransmitParams {
635

636
		public int slotNum;
637
		public int controlCode;
638
		public String commandString;
639
	}
640

641
	private class TransmitProgress {
642

643
		public byte[] command;
644
		public int commandLength;
645
		public byte[] response;
646
		public int responseLength;
647
		public Exception e;
648
	}
649

650
	private byte[] toByteArray(String hexString) {
651

652
		int hexStringLength = hexString.length();
653
		byte[] byteArray = null;
654
		int count = 0;
655
		char c;
656
		int i;
657

658
		for (i = 0; i < hexStringLength; i++) {
659

660
			c = hexString.charAt(i);
661
			if (c >= '0' && c <= '9' || c >= 'A' && c <= 'F' || c >= 'a'
662
					&& c <= 'f') {
663
				count++;
664
			}
665
		}
666

667
		byteArray = new byte[(count + 1) / 2];
668
		boolean first = true;
669
		int len = 0;
670
		int value;
671
		for (i = 0; i < hexStringLength; i++) {
672

673
			c = hexString.charAt(i);
674
			if (c >= '0' && c <= '9') {
675
				value = c - '0';
676
			} else if (c >= 'A' && c <= 'F') {
677
				value = c - 'A' + 10;
678
			} else if (c >= 'a' && c <= 'f') {
679
				value = c - 'a' + 10;
680
			} else {
681
				value = -1;
682
			}
683

684
			if (value >= 0) {
685

686
				if (first) {
687

688
					byteArray[len] = (byte) (value << 4);
689

690
				} else {
691

692
					byteArray[len] |= value;
693
					len++;
694
				}
695

696
				first = !first;
697
			}
698
		}
699

700
		return byteArray;
701
	}
702

703
	private static String byteToHexString(byte[] buffer, int bufferLength) {
704

705
		String bufferString = "";
706

707
		for (int i = 0; i < bufferLength; i++) {
708

709
			String hexChar = Integer.toHexString(buffer[i] & 0xFF);
710
			if (hexChar.length() == 1) {
711
				hexChar = "0" + hexChar;
712
			}
713

714
			bufferString += hexChar.toUpperCase() + "";
715
		}
716

717
		if (bufferString != "") {
718
		}
719
		return bufferString;
720
	}
721
}

+ 19 - 0
multiple-server/etc/app-config.xml

@ -1,5 +1,6 @@
1 1
<?xml version="1.0" encoding="UTF-8"?>
2 2
<apps>
3
    <!--
3 4
	<app appId="display" appName="IPU展示" appType="I" appIcon="e_ico-qr"
4 5
		appWelcomePage="welcome/WelcomeDisplay.htm" requestHost="http://10.0.2.2:8080"
5 6
		requestPath="/display" requestServlet="/mobiledata" appPath="display-client" />
@ -15,4 +16,22 @@
15 16
	<app appId="native" appName="原生案例" appType="N" appIcon="e_ico-storage"
16 17
		 packageName="com.ai.mobile.display" className="com.ai.mobile.display.MainActivity" 
17 18
		 downloadUrl="http://114.215.100.48:8080/setup/display-client.apk"/>
19
	--> 
20
	
21
	<app appId="smartCRM" appName="智能终端CRM" appType="I" appIcon="e_ico-wade-ob" appIndexPage="Index"
22
		appWelcomePage="welcome/Welcome-smartCRM.htm" requestHost="http://192.168.1.108:8080"
23
		requestPath="/smartCRM" requestServlet="/mobiledata" appPath="smartCRM" />
24
	
25
	<app appId="realname" appName="实名登记" appType="I" appIcon="e_ico-realname" appIndexPage="Index"
26
		appWelcomePage="welcome/Welcome-realname.htm" requestHost="http://192.168.1.108:8080"
27
		requestPath="/realname" requestServlet="/mobiledata" appPath="realname" />
28
	 
29
	<app appId="bukayi" appName="换卡易" appType="I" appIcon="e_ico-bukayi" appIndexPage="UserConfirm"
30
		appWelcomePage="welcome/Welcome-bukayi.htm" requestHost="http://192.168.1.108:8088"
31
		requestPath="/bukayi-server" requestServlet="/mobiledata" appPath="bukayi" />
32
	
33
	<app appId="guangkuandai" appName="光宽带" appType="I" appIcon="e_ico-guangkuandai" appIndexPage="Index"
34
		appWelcomePage="welcome/Welcome-guangkuandai.htm" requestHost="http://192.168.1.108:8088"
35
		requestPath="/appserver" requestServlet="/mobiledata" appPath="guangkuandai" />
36
	 
18 37
</apps>

+ 1 - 1
multiple-server/etc/memcache.properties

@ -6,5 +6,5 @@
6 6
#memcache.session_cache.max_conn=50
7 7
#memcache.session_cache.max_idle=60000
8 8
#memcache.session_cache.maint_sleep=30
9
memcache.session_cache.cluster=192.168.128.77:10001
9
memcache.session_cache.cluster=10.7.5.77:10001
10 10


+ 10 - 0
multiple-server/web/biz/css/project.css

@ -15,6 +15,9 @@
15 15
.e_ico-code:before          { content:"\e60b";}/*代码*/
16 16
.e_ico-chat:before          { content:"\e619";}/*推送*/
17 17
.e_ico-scene:before         { content:"\e618";}/*场景*/
18
.e_ico-guangkuandai:before  { content:"\e621";}/*光宽带*/
19
.e_ico-bukayi:before        { content:"\e622";}/*换卡易*/
20
.e_ico-realname:before        { content:"\e623";}/*实名登记*/
18 21
.e_ico-ui-button:before     { content:"\e60d";}
19 22
.e_ico-ui-form:before       { content:"\e60e";}
20 23
.e_ico-ui-icon:before       { content:"\e60c";}
@ -49,6 +52,9 @@
49 52
.e_ico-qr,
50 53
.e_ico-device,
51 54
.e_ico-about,
55
.e_ico-guangkuandai,
56
.e_ico-bukayi,
57
.e_ico-realname,
52 58
.e_ico-wade-ob { font-family:"project";}
53 59
.m_nav .e_ico-conect { color:#8fc320;}
54 60
.m_nav .e_ico-net { color:#c37c20;}
@ -72,6 +78,10 @@
72 78
.m_nav .e_ico-code { color:#8fc320;}
73 79
.m_nav .e_ico-chat { color:#c37c20;}
74 80
.m_nav .e_ico-scene { color:#c33f20;}
81
.m_nav .e_ico-guangkuandai { color:#e40077;}
82
.m_nav .e_ico-bukayi { color:#0085d0;}
83
.m_nav .e_ico-wade-ob { color:#8fc320;}
84
.m_nav .e_ico-realname { color:#4489ac;}
75 85

76 86

77 87


BIN
multiple-server/web/biz/img/project.ttf


BIN
multiple-server/web/biz/img/welcome-bukayi.jpg


BIN
multiple-server/web/biz/img/welcome-guangkuandai.jpg


BIN
multiple-server/web/biz/img/welcome-realname.jpg


BIN
multiple-server/web/biz/img/welcome-smartCRM.png


+ 15 - 0
multiple-server/web/welcome/Welcome-bukayi.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-bukayi.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-guangkuandai.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-guangkuandai.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-realname.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-realname.jpg" />
14
</body>
15
</html>

+ 15 - 0
multiple-server/web/welcome/Welcome-smartCRM.htm

@ -0,0 +1,15 @@
1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
<html>
3
<head>
4
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
<style type="text/css">
6
	body { margin:0; padding:0;position:absolute;width:100%;height:100%;overflow:hidden;}
7
	div { margin:0; padding:0;}
8
	img { border:0; outline: none; vertical-align:middle;width:100%; height:100%;}
9
</style>
10
<title>加载中</title>
11
</head>
12
<body>
13
<img src="../biz/img/welcome-smartCRM.png" />
14
</body>
15
</html>

BIN
wade-mobile-library/common/jdom1.0.jar


BIN
wade-mobile-library/common/quartz-all-1.6.6.jar


BIN
wade-mobile-library/common/wade-cache.jar