mssql 을 사용했고 ii7을 이용
xml을 파싱해서 데이터를 이용하는 방법인데 에뮬레이터에서는 실행이 잘 되는데
실제기기에서는 사용이안되네요.
log를 찍어봐도 실제기기에선 일정 부분만 실행하다가 멈추는거같아요.
혹시 이런현상이 있었는데 해결하신분 없으신가요 ㅠ
---------------------------------소스코드----------------------------------------------
public ArrayList<Data> soapData() throws Exception {
ArrayList<Data> dataList = new ArrayList<Data>();
SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);
Log.e("dd", "Soap Created");
SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);
Log.e("dd", "envelope");
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
request.addProperty("SQL" ,SEARCHDATA);
Log.e("dd", "request");
HttpTransportSE androidHttpTransport=new HttpTransportSE(URL);
Log.e("dd", "HttpTransportSE");
androidHttpTransport.debug = true;
Log.e("dd", "HttpTransportSE2");
androidHttpTransport.call(SOAP_ACTION, envelope);
Log.e("dd", "try2");
SoapPrimitive result = (SoapPrimitive)envelope.getResponse();
Log.e("dd", "try3");
dataList = xmlParsing(result.toString()); //xml파싱
Log.d("data",""+dataList.get(0).getNowStandard());
Log.d("data",""+dataList.get(1).getNowStandard());
return dataList;
}
public ArrayList<Data> xmlParsing(String Data) throws Exception {
Log.d("dd", "Parser");
ArrayList<Data> dataList = new ArrayList<Data>();
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
InputStream input = new ByteArrayInputStream(Data.getBytes("UTF-8"));
parser.setInput(input, "utf-8");
boolean lineSet = false;
boolean conSet = false;
boolean standSet = false;
boolean nowSet = false;
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.START_TAG:
String tag = parser.getName();
if (tag.equals("lineName")) {
lineSet = true;
}
if (tag.equals("conditionName")) {
conSet = true;
}
if (tag.equals("standStatus")) {
standSet = true;
}
if (tag.equals("nowStatus")) {
nowSet = true;
}
break;
case XmlPullParser.END_TAG:
break;
case XmlPullParser.TEXT:
if (lineSet) {
data = new Data();
data.setLineName(parser.getText()); //Tag가 끝난후 Tag의 Text값을 가져옴
lineSet = false;
}
if (conSet) {
data.setConditionName(parser.getText()); //Tag가 끝난후 Tag의 Text값을 가져옴
conSet = false;
}
if (standSet) {
data.setStandard(Double.parseDouble(parser.getText())); //Tag가 끝난후 Tag의 Text값을 가져옴
standSet = false;
}
if (nowSet) {
data.setNowStandard(Double.parseDouble(parser.getText())); //Tag가 끝난후 Tag의 Text값을 가져옴
boolean passSet = false;
double compareValue = data.getStandard() - data.getNowStandard();
if(compareValue<2 && compareValue>-2)
passSet = true;
// Log.e("data", data.getLineName());
// Log.e("data", data.getConditionName());
// Log.e("data", "" + data.getStandard());
// Log.e("data", "" + data.getNowStandard());
data.setPass(passSet);
dataList.add(data);
data = null;
nowSet = false;
}
break;
}
eventType = parser.next();
}
return dataList;
}
-----------log---------
08-28 14:40:26.207: E/dd(20999): Soap Created
08-28 14:40:26.309: E/dd(20999): envelope
08-28 14:40:26.317: E/dd(20999): request
08-28 14:40:26.317: E/dd(20999): HttpTransportSE
08-28 14:40:26.317: E/dd(20999): HttpTransportSE2
하고 로그가 더이상 뜨지않습니다.