2
respostas

Aplicativo que lista Permições

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;
    }


}
2 respostas

Oi Francisco, tudo bem ?

Cara não entendi muito bem o que você quer fazer.

Em questão de permissões e tudo mais, o próprio Android já tem algumas telas que exibem o que as aplicações precisam para funcionar.

Abraços

A minha ideia é desenvolver um aplicativo que listará os apps instalados no aparelho e quais as permissões que esses aplicativos instalados pedem. Seria algo como o aplicativo aSpotCat

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software