내 모든 설치된 앱의 아이콘을 가져오고 싶습니다. 패키지 관리자를 사용하여 해당 아이콘을 얻을 수 있습니까? 거기에 어떤 기능이 있습니까? 또는 설치된 모든 앱의 아이콘을 비트 맵으로 가져 오는 다른 방법은 없나요?android에 설치된 모든 앱의 아이콘을 가져옵니다.
감사합니다.
내 모든 설치된 앱의 아이콘을 가져오고 싶습니다. 패키지 관리자를 사용하여 해당 아이콘을 얻을 수 있습니까? 거기에 어떤 기능이 있습니까? 또는 설치된 모든 앱의 아이콘을 비트 맵으로 가져 오는 다른 방법은 없나요?android에 설치된 모든 앱의 아이콘을 가져옵니다.
감사합니다.
이 방법을 시도하여 작업 활동 클래스에서 정보에 액세스하기 위해 지금이 떨어진 곳
public class PackageInformation {
private Context mContext;
public PackageInformation(Context context) {
mContext = context;
}
class InfoObject {
public String appname = "";
public String pname = "";
public String versionName = "";
public int versionCode = 0;
public Drawable icon;
public void InfoObjectAggregatePrint() { //not used yet
Log.v(appname, appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);
}
}
private ArrayList <InfoObject> getPackages() {
ArrayList <InfoObject> apps = getInstalledApps(false);
final int max = apps.size();
for (int i = 0; i < max; i++) {
apps.get(i).prettyPrint();
}
return apps;
}
public ArrayList <InfoObject> getInstalledApps(boolean getSysPackages) {
ArrayList <InfoObject> res = new ArrayList <InfoObject>();
List <PackageInfo> packs = mContext.getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if ((!getSysPackages) && (p.versionName == null)) {
continue;
}
InfoObject newInfo = new InfoObject();
newInfo.appname = p.applicationInfo.loadLabel(mContext.getPackageManager()).toString();
newInfo.pname = p.packageName;
newInfo.versionName = p.versionName;
newInfo.versionCode = p.versionCode;
newInfo.icon = p.applicationInfo.loadIcon(mContext.getPackageManager());
res.add(newInfo);
}
return res;
}
}
턱을이 작업을 수행합니다
PackageInformation androidPackagesInfo = new PackageInformation(this);
ArrayList <InfoObject> appsData = androidPackagesInfo.getInstalledApps(true);
for (InfoObject info: appsData) {
Toast.makeText(MainActivity.this, info.appname, 2).show();
Drawable somedrawable = info.icon;
}
내가 그것을 찾을 가장 쉬운 방법 :
private List<ResolveInfo> installedApps() {
final Intent main_intent = new Intent(Intent.ACTION_MAIN, null);
main_intent.addCategory(Intent.CATEGORY_LAUNCHER);
return package_manager.queryIntentActivities(main_intent, 0);
}
이제 아이콘을 얻으려면 다음을 사용하십시오.
for(ResolveInfo ri : installedApps()) {
// to get drawable icon --> ri.loadIcon(package_manager)
}
Android 3.0부터 설명 된 방식으로는 더 큰 실행기 아이콘을 얻을 수 있습니다. 그렇다면 아래 질문에 대한 내 대답이 도움이 될 수 있습니다. http://stackoverflow.com/questions/4600740/getting-app-icon-in-android/16279240#16279240 –