2012-11-13 2 views
1

내 홈페이지에서 앱을 업데이트하려고합니다. 업데이트 절차를 완료하고 올바르게 작동합니다.APK 파일이 설치된 것보다 최신인지 확인하는 방법은 무엇입니까?

내 페이지의 APK가 설치된 APK보다 최신 인 경우에만 업데이트를 진행하고 싶습니다. 새롭게 말하면, 내가 설치 한 날짜 또는 APK의 크기와 관련하여 새로운 것을 의미합니다. 항상 버전 이름을 업데이트하는 것을 잊지 마십시오.

So : 설치된 APK의 설치 날짜 또는 설치된 APK 파일의 날짜 또는 APK의 크기 (/ 데이터)를 검색하려면 어떻게해야합니까?/app 디렉토리는 사용자가 필요로하지 않도록 루트 액세스가 필요합니다.)

ApplicationInfo 및 PackageManager에 대해 알고 있지만 설명서에 필요한 정보를 찾지 못했습니다.

감사합니다. L.

+1

버전 이름? 아니면 숫자가 맞지? 그것은 중요한 숫자입니다 ... 그냥 그것을 업데이 트하는 것을 잊지 마세요 ... DUH –

+0

@AndersMetnik : 어쩌면 내가 명확하지 않았습니까? 나는 versionName을 사용하고 싶지 않습니다 (네, 그것은 manifest 파일에 기록되어야하므로 'versionName'입니다). –

답변

0

나는 this SO Answer을 찾고 있습니다.

참고하시기 바랍니다. 아마도 Android's practices for versioning.을 사용해야합니다. 이것은 버전을 높이기 위해 기억해야 할 필요가없는 생산적인 해결 방안처럼 보입니다. 궁극적으로 .apk의 설치 날짜와 크기는 코드를 제거하면 .apk 크기가 줄어들 수 있고 더 오래된 버전 일 수 있기 때문에 응용 프로그램의 최신 버전인지 오래된 버전인지에 대해 확실하게 알 수는 없습니다. 당신이 찾고있는 최소 날짜 이후에 그것을 설치하십시오.

버전 이름이 임의의 문자열이 될 수 있기 때문에 버전 번호가 아닌 버전 코드를 사용하여 응용 프로그램이 최신 버전인지 확인하는 것이 좋지만 버전 코드는 간단한 정수 비교입니다. This is a clear SO example.

+0

감사합니다. 이미 아래에있는 방법을 발견했습니다 ('보내기'를 누르는 것을 잊어 버렸습니다). 버저 닝의 한 가지 문제점은 수정 시간/크기를 얻는 것이 간단하고 작은 http 쿼리 인 반면 가져 오기 위해 APK를 검색해야한다는 것입니다. 최악의 경우 사용자는 동일한 apk를 두 번 설치합니다. 어쨌든 versionCode를 업데이트하지만 현재 여러 버전을 출시하고 있습니다. 따라서 절반을 잊어 버렸습니다. 실용적이지 않은데 ... 충고에 감사드립니다! –

1

나 혼자서 대답을 찾으십시오. 관심이 있으시면 아래를보십시오.

public long appinfo(String pkg){ 
    PackageManager p = context.getPackageManager(); 
    long labeldate = 0; 
    try { 
     PackageInfo label = p.getPackageInfo(pkg, 0); 
     labeldate = label.lastUpdateTime; 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 
    return labeldate; 
} 
관련 문제