2012-08-12 2 views
2

애플리케이션 시작시 현재 실행중인 버전과 현재 Google Play에있는 동일한 애플리케이션의 버전을 비교할 수 있기를 원합니다. Google Play에서 애플리케이션의 현재 버전을보다 신속하게 쿼리 할 수 ​​있습니까?

나는이에 좋은 방법을 발견 here 설명 :

public String getLatestVersionNumber() { 
    String versionNumber = "0.0.0"; 

    try { 
     Document doc = Jsoup.connect("http://www.appbrain.com/app/wallpaper-switch/com.mlevit.wallpaperswitch").get(); 
     Elements changeLog = doc.select("div.clDesc"); 

     for (Element div : changeLog) { 
      String divText = div.text(); 

      if (divText.contains("Version")) { 
       return divText.split(" ")[1]; 
      } 

     } 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 

    return versionNumber; 
} 

을하지만 너무 느린 크게 응용 프로그램 시작에 대한 사용자 경험을 방해한다.

Google Play에서 애플리케이션의 현재 버전을 쿼리하는 방법이 있습니까?

숨겨진 LVL 또는 인앱 결제 API가 있습니까?

+1

왜 AsyncTask에서하지 않는 것이 좋을까요? 그렇게하면 UI를 방해하지 않습니까? 또한 정확히 무엇을 성취하려고합니까? – kcoppock

+0

@kcoppock 사용자에게 최신 버전을 알리고이를 업데이트하기 위해 Google Play에 갈 것을 권장하는 대화 상자를 표시하고 싶습니다. 많은 사용자가 Google Play에서 업데이트를 확인하지 않으므로 최대한 빨리 새 버전을 인식해야합니다. 번역). AsyncTask를 통해이를 수행하는 방법에 대한 제안을 게시 할 수 있습니까? –

+2

AppBrain은 웹 디자인을 변경하지 않고 AppBrain의 Play 스토어 데이터 유출에 간접적으로 의존합니다. 앱의 버전 번호가 포함 된 파일 (예 : Amazon S3)을 유지 관리하기 만하면됩니다. 그리고 항상 배경 스레드 (예 :'AsyncTask')에서 네트워크 I/O를 수행하십시오. – CommonsWare

답변

4

Google Play 버전을 훨씬 빠르게 제공하는 API가 있습니까?

음, 정의에 따르면 네트워크 액세스가 느립니다. Google Play에 문서화되고 지원되며 라이센스가 부여 된 API가 있어도 (이 글을 쓰는 시점은 아닙니다.) 현재 진행중인 작업보다 점진적으로 빠릅니다.

AsyncTask를 통해이를 수행하는 방법에 대한 제안 사항을 게시 할 수 있습니까?

1 단계 : 파일을 만듭니다.

2 단계 : 해당 파일에 선택적으로 다른 형식의 데이터 (예 : 업데이트 설명)와 함께 버전 번호를 형식 (예 : JSON)으로 입력하십시오.

3 단계 : 잘 알려진 안정적인 URL로 파일 업로드.

단계 # 4 : AsyncTask 만들기 같은 AsyncTaskonPostExecute()에서 (바람직하게는 뭔가 비 모달를 통해) 귀하의 UI를 업데이트와 더불어, AsyncTaskdoInBackground()에서 파일에 대한 HTTP 요청을 넣어. UI를 업데이트하는 HTTP 작업 (미국 국립 기상청에서 일기 예보를 당겨)하고 결과를 구문 분석을 수행하는 AsyncTask을 보여주는

Here is a sample project 할 때 (A WebView 채우기).

+0

완벽. 훌륭하게 작동합니다. 감사. –

관련 문제