public class MainActivity extends Activity {
TextView tv;
public static String getVersion(String strURL){
Source source;
String version = "";
try{
URL url = new URL(strURL);
source = new Source(url); // 여기에서 에러 발생, 하지만 2.2 프로요에서는 정상 작동
Element element = null;
List<Element> list = source.getAllElements(HTMLElementName.DIV); // DIV 엘리먼트를 가져옴
for(int i = 0; i < list.size(); i++){
element = list.get(i);
String attributevalue = element.getAttributeValue("itemprop"); // itemprop 자식 엘리먼트 가져옴
if(attributevalue != null){
if(attributevalue.equals("softwareVersion")){ // itemprop의 자식엘리먼트 중 shoftwareVersion 엘리먼트가 있으면
TextExtractor textExtractor = element.getTextExtractor();
version = textExtractor.toString(); // 버전을 가져옴
return version;
}
}
}
}catch(Exception e){
return "Error~~~"; // 데이터 파싱 실패시 Error 리턴
}
return null;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView)findViewById(R.id.par);
String url = "https://play.google.com/store/apps/details?id=org.childfriend.www"; // 파싱해올 url
tv.setText(getVersion(url));
}
}
위 소스는 구글플레이에서 제가 올린 앱의 버전을 파싱을 해 옵니다.
에뮬로 실행시 2.2 프로요에서는 버전을 정상적으로 파싱을 해 옵니다.
하지만 2.2 이상에서는 Error~~~ 를 띄우네요.
source = new Source(url); <- 여기에서 에러가 발생이 됩니다.
jericho-android.3.1.jar 파일을 사용해봤으며 최신버전도 사용해보았으나 에러가 발생이되네요.
부디 고수님들의 도움 부탁드립니다.