Olá, depois de estudar esse capitulo que fala sobre como usar as permissões me surgiu uma duvida de como criar um app que lista os aplicativos do aparelho e lista as permissões que são pedidas por cada app. O problema é que nao tenho muito conhecimento sobre desenvolvimento e gostaria de pedir ajuda para desenvolver essa activity. Teria como adaptar esse código para o meu objetivo?
ipackage com.android.br.listaapps;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ListaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_lista);
List<AppsInfo> apps = getApplicationsInfo(this);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListaActivity.this, android.R.layout.simple_list_item_1, apps);
ListView lista_apps = (ListView) findViewById(R.id.ListaApps);
lista_apps.setAdapter(adapter);
}
void listApps() {
List<AppsInfo> apps = getApplicationsInfo(this);
for (AppsInfo info : apps) {
}
}
public static class AppsInfo {
public String label;
public String name;
public String packageName;
public Drawable icon;
@Override
public String toString() {
return "label:" + label + " name:" + name + " packageName:"
+ packageName + " icon: " + icon.toString();
}
}
;
public List<AppsInfo> getApplicationsInfo(Context context) {
List<AppsInfo> apps = new ArrayList<AppsInfo>();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0);
Collections.sort(activities, new ResolveInfo.DisplayNameComparator(pm));
for (ResolveInfo ri : activities) {
AppsInfo info = new AppsInfo();
info.packageName = ri.activityInfo.packageName;
info.name = ri.activityInfo.name;
info.label = (String) ri.loadLabel(pm);
info.icon = ri.activityInfo.loadIcon(pm);
apps.add(info);
}
return apps;
}
}