2012-03-09 6 views
0

Android 기기에 현재 설치되어있는 APK (사용자 설치 및 사전 설치) 버전 번호를 더 쉽게 (보다 자동화 된 방식으로) 확인하려고합니다.Android 기기에서 패키지 버전 알아보기

현재이 같은 그것에 대해 진행되었습니다

을 수행합니다. 버전은 APK에 있습니다
b. apk는 일반적으로/system/app
c에 있습니다. apk 이름의 패키지 이름은 /data/system/packages.xml
d에 있습니다. 까다로운 부분은 애플리케이션 NAME이 apk 파일의 문자열 리소스에 있습니다 (예 : strings.xml (기본 이름)
e). 이것은 PackageManager 패밀리 API를 사용하여 android SDK 내에서 수행 할 수도 있습니다.

이것은 많은 시간이 걸리고 많은, 많은 기기에서이 작업을 수행합니다. 나는 단지 더 쉬운 방법이 있어야한다고 생각합니다.

언제나처럼 도와 주셔서 감사합니다. 매우 감사드립니다. 유효

+0

"버전 번호"는 앱의 versionCode 및 versionName을 의미합니까? – YuviDroid

답변

0

내가 해냈어! .....이 코드를 다른 사람에게 게시하면 장치의 모든 패키지 이름과 버전 이름을 찾아야합니다.

import java.util.List; 
import android.app.Activity; 
import android.content.pm.PackageInfo; 
import android.os.Bundle; 
import android.text.method.ScrollingMovementMethod; 
import android.util.Log; 
import android.widget.TextView; 

public class main extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    String bldr = new String(); 

    List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
    bldr = "Total packages --> " + packs.size() + "\n"; 

    for(int i=0;i<packs.size();i++){ 
     PackageInfo p = packs.get(i); 
     bldr = bldr + "<" + p.packageName + ">" + "\t" + "v" + p.versionName + "\n"; 
    } 

    TextView tv = new TextView(this); 
    tv.setMaxLines(packs.size() + 2); 
    tv.setMovementMethod(new ScrollingMovementMethod()); 
    tv.setText(bldr); 
    setContentView(tv); 
    Log.w("com.tmobile.pr.showAllPackages", bldr.toString()); 
} 
} 
0

당신의 방법 중 하나입니다 :이 또한 API의

나머지의 패키지 매니저 제품군을 사용하여 안드로이드 SDK 내에서 수행 할 수

... 내가 가진 왜 그렇게 믿을 수 있을지 혼자서 생각하지 않을 것입니다. 특히 사람들이 versionCode을 번역 할 필요가 없다는 점을 고려하여 문자열 리소스를 사용한다고 생각하게합니다.

이, PackageManager를 호출 설치된 응용 프로그램을 반복하고, 밀리 세컨드의 소수를 수행해야하는 버전 정보를 검색 할 수

코드를 소모 매우 시간입니다.