펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO



매니페스트에 설정된 어플의 버전을 가져오는 방법이다.


직접적으로 매니페스트의 버전을 가져올 수 없기때문에


패키지매니저를 통해 자기자신 패키지명을 대입하여


설치정보를 가져오는 방식이다.


public static String getPackageVersion(Context context) {

try {

PackageInfo pi = context.getPackageManager()

.getPackageInfo(context.getPackageName(),

PackageManager.GET_UNINSTALLED_PACKAGES);

return pi.versionName;

}

catch(Exception e) {

}

return new String("");

}


예를들어 매니페스트의 버전이 android:versionName="1.0.0" 이라면


1.0.0을 리턴한다.


버전체크가 필요할때 주로 사용되는 방법이다.



펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO




private void getPackageList() {

PackageManager pm = this.getPackageManager();


List<PackageInfo> packs =                   getPackageManager().getInstalledPackages(PackageManager.PERMISSION_GRANTED);

Log.i("TAG", "===================================================");

for (PackageInfo pack : packs) {

Log.d("TAG", "| name    : " + pack.packageName);

      Log.d("TAG", "| package : " + pack.packageName);

      Log.d("TAG", "| version : " + pack.versionName);

}

Log.i("TAG", "===================================================");

}



휴대폰에 설치 된 패키지명과 어플명, 버전을 가져온다.



public void onRemovePackage(String removePackage) {

Uri uri = Uri.fromParts("package", removePackage, null);

Intent intent = new Intent(Intent.ACTION_DELETE, uri);

startActivity(intent);

}


removePackage로 받아 온 패키지명의 어플을 삭제하겠냐는 팝업이 나타나고, 해당 패키지를 삭제한다.


호출은 


onRemovePAckage("com.example.test");




펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


패키지명을 입력하면 설치 여부를 알려주는 소스코드


PackageInfo pi;  

try {

String strAppPackage = "패키지명 (ex : com.exam.googlemap)";

pi = getPackageManager().getPackageInfo(strAppPackage,  PackageManager.GET_ACTIVITIES);

}

catch (PackageManager.NameNotFoundException e) {

//패키지가 설치되지 않음

}


버전을 구하고싶다면


String str = pi.versionName;