2012-06-11 4 views
0

내 새 앱에서는 내 앱에서 다른 앱을 시작하려고합니다. 그러나 모든 응용 프로그램에 패키지 이름을 찾는 것은 상당히 어렵습니다. 나는 현재 설치된 모든 앱에서 패키지 이름을 찾는 앱을 만들지 만 일종의 온라인 데이터베이스 나 시장을 어디에서 볼 것인지 쉽게 알 수 있습니다.온라인으로 패키지 이름을 찾으십니까?

온라인 패키지 데이터베이스가 있습니까? 아니면 "packagename app"을 사용하여 직접 찾아야합니까?

답변

2

다른 앱에서 정보를 얻으려면 아래 코드를 사용하십시오. 코드에 약간의 오류가있을 수 있지만 좋은 출발점이됩니다. 이 시스템 애플리케이션에 접근해야하는 경우

class PInfo { 
private String appname = ""; 
private String pname = ""; 
private String versionName = ""; 
private int versionCode = 0; 
private Drawable icon; 
private void prettyPrint() { 
    Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode); 
} 
} 

private ArrayList<PInfo> getPackages() { 
ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */ 
final int max = apps.size(); 
for (int i=0; i<max; i++) { 
    apps.get(i).prettyPrint(); 
} 
return apps; 
} 

private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) { 
ArrayList<PInfo> res = new ArrayList<PInfo>();   
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0); 
for(int i=0;i<packs.size();i++) { 
    PackageInfo p = packs.get(i); 
    if ((!getSysPackages) && (p.versionName == null)) { 
     continue ; 
    } 
    PInfo newInfo = new PInfo(); 
    newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString(); 
    newInfo.pname = p.packageName; 
    newInfo.versionName = p.versionName; 
    newInfo.versionCode = p.versionCode; 
    newInfo.icon = p.applicationInfo.loadIcon(getPackageManager()); 
    res.add(newInfo); 
} 
return res; 
} 

아래의 코드를 사용하려고 할 수 있습니다 : 당신이 패키지 이름을 가져 오지하기 위해 온라인 데이터베이스를 사용하고자 할 이유

((packs.get(i).applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) { continue; } 

. 왜 온라인 데이터베이스를 사용하고 싶은지 말해 주시면 더 자세한 정보를 알려 드릴 수 있습니다. 안드로이드 마켓 URL (google play)을 살펴보면 앱 URL에 패키지 이름이 포함되어 있음을 알 수 있습니다. 예 : https://play.google.com/store/apps/details?id=com.speaker.app id =는 패키지 이름입니다. 이것은 당신이 원하는 시장을 어디에서보아야 하는지를 이해하는 데 도움이 될 수 있습니다.

정말로 온라인 데이터베이스가 필요한 경우 : 나는 일종의 SQL을 사용하고 앱에서 "정보"를 요청할 것을 권장합니다. 이 requier 일부 서버 백엔드 프로그래밍 지식.

관련 문제