Naar content
Trending apps
  • Inbox by Gmail

  • Maps: Navigatie en OV

  • WhatsApp Messenger

  • Messenger

  • Facebook

Trending games
  • Minecraft Earth

  • Dr. Mario World

  • Harry Potter: Wizards Unite

  • Breaking Bad: Criminal Elements

  • The Elder Scrolls: Blades

Trending smartphones
  • Samsung Galaxy Z Flip

  • Samsung Galaxy Note 10 Lite

  • Realme X2 Pro

  • Samsung Galaxy S20 Ultra

  • Moto G8 Plus

Nieuwste tablets
  • Samsung Galaxy Tab S6

  • Samsung Galaxy Tab A 10.5

  • Samsung Galaxy Tab S4

  • Samsung Galaxy Tab S3 9.7

  • Asus Zenpad 3S 10

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #1
  • 22 maart 2015
  • 20:25

Al veel geprobeerd, maar ik kom er niet uit.
Het verste wat ik kom, dat is met een standaard icon, maar dat is niet wat ik wil.
Voorbeelden genoeg, maar die hebben dan de icons IN de app opgeslagen.

Ik wil graag alle geinstalleerde apps listen (dat lukt me al wel), maar dan MET app icon.
En dat lukt me nou net niet.

Ik kan de icon opslaan, maar hergebruiken helaas niet.
Volgens mij sla ik de verkeerde gegevens op, maar ik kan niet vinden wat ik dan wél moet opslaan.
Wat ik opsla: android.graphics.drawable.bitmapdrawable@46823824 per icon.

Is er iemand bereid om een appje te maken waarin de apps MET icon gelist worden ?
En dan graag de java broncode geven, zodat ik kan zien hoe het moet (en vooral: waar ik het verkeerd doe)
(uiteraard krijg je dan bronvermelding)

Of een eind op weg helpen, dat zou ook fijn zijn.




Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

redbulletnl

redbulletnl

  • Lid sinds 02 september 2011
  • Berichten 2991
  • Reputatie 60
  • #2
  • 23 maart 2015
  • 09:39

Een custom listview moet makkelijk te maken/google zijn (op androidhive staat er 1 volgens mij)


Verder zou ik voor de icoontjes zoeken naar
: android get icon from other app


http://stackoverflow.com/questions/4600740/getting-app-icon-in-android/16279240#16279240
http://www.androidsnippets.com/get-installed-applications-with-name-package-name-version-and-icon



Verder kunnen we niet zien wat jij fout doet als jij je code niet plaatst
en om in de goede richting te sturen is het ook fijn om te weten wat je al hebt en nog moet hebben
Met het bovenstaande zal het je wel lukken, succes!

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #3
  • 23 maart 2015
  • 09:56

Wat ik aan code heb is zo'n bijeengeraapt zooitje,
dat ik me er eigenlijk een beetje voor geneer om de code hier neer te zetten…..

Het is veel trial en error.

Ik zal vanavond even kijken of ik de code een beetje leesbaar kan plaatsen hier.

http://www.androidsnippets.com/get-installed-applications-with-name-package-name-version-and-icon
hier kwam ik niet uit. Ik wist niet waar ik die class moest plaatsen.
Ik heb wat zitten proberen, maar hier gaf hij een foutmelding op:

Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);
van dit deel:
private void prettyPrint() {Log.v(appname + "\t" + pname + "\t" + versionName + "\t" + versionCode);    }

Uiteindelijk liep ik stuk op dat hele Pinfo.

Bewerkt (23 maart 2015 11:32)

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #4
  • 23 maart 2015
  • 17:25

Hier de code:
Het geeft me één icoontje, linksboven, verder niks.

public class Test extends ActionBarActivity {
    String naarlist;
    String systeemapps;
    ListView listview;
    ArrayList<String> list = new ArrayList<String>();
    ArrayList<Drawable> iconlist = new ArrayList<>();
    int lengte;
    String arraystring="";
    String toonlijst;
    ActionBar actionBar;
    int arraylengte;
    Context context;
    ImageView imageView;
    String appname = "";
    String pname = "";
    String versionName = "";
    int versionCode = 0;
    Drawable icon;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        listview = (ListView) findViewById(R.id.listview);
        imageView = (ImageView) findViewById(R.id.imageView);
      
        getPackages();
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, list);
  
        final int max = 4;
        for (int i=0; i<max; i++) {
            //   apps.get(i).prettyPrint();
            Drawable d = iconlist.get(i);
            Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
            imageView.setImageDrawable(d);          
        }
        listview.setAdapter(adapter);
    }
    class PInfo {
        private String appname = "";
        private String pname = "";
        private String versionName = "";
        private int versionCode = 0;
        private Drawable icon;
        private void prettyPrint() {
        }
    }
    private ArrayList<PInfo> getPackages() {
        ArrayList<PInfo> apps = getInstalledApps(false); /* false = no system packages */
        Drawable icon = null;
        try {
            icon = getPackageManager().getApplicationIcon("nl.peter.blue.adresboek");
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        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();
                icon = p.applicationInfo.loadIcon(getPackageManager());
                iconlist.add(icon);
               
            }
            return res;
        }
    }

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #5
  • 23 maart 2015
  • 18:12

Eh, ik heb een open source code gevonden, die doet wat ik zoek.
De benodigde code sloop ik er uit en bouw het in m'n eigen programma.
MET bronvermelding uiteraard.

https://play.google.com/store/apps/details?id=de.onyxbits.listmyapps

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #6
  • 23 maart 2015
  • 21:14

Helaas, het gaat ver boven m'n pet.

Het is me gelukt om de benodigde data over te zetten, maar dan blijken mijn buttons het ineens niet meer te deon, wat ik ook probeer.
Ook de actionbar doet het niet meer.

Goed, pas ik het origneel aan tot het werkt zoals ik het wil en dan zet ik het over.
Ook dat werkt niet. De bouwer gebruikt meerdere classes die intern worden aangeroepen. Dat gaat me nu nog iets te ver.
Ik dacht, dat als scherm 1 alles toont, behalve de systemapps, dan moet het toch makkelijk zijn om een tweede scherm te maken die alleen de sytemapps laat zien. Dat lukt voor geen meter. Hij blijft hetzelfde tonen als scherm 1.

Het origineel ziet er echt schitterend uit, maar ik zal op zoek moeten naar iets eenvoudigers.
We me daarmee op weg kan helpen, graag.
Ik wil gewoon 2 schermen, eentje met geinstalleerde apps en een scherm met systemapps. (met iconen)
En dan wisselen via een button.

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

redbulletnl

redbulletnl

  • Lid sinds 02 september 2011
  • Berichten 2991
  • Reputatie 60
  • #7
  • 24 maart 2015
  • 09:09

Even voor de duidelijkheid, welke button werkt dan niet meer?

Voor controle bij systeem apps
https://www.google.nl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=android%20get%20all%20system%20apps


Well, it's a sloppy solution in my opinion (what if /data/app isn't the apps directory on all devices?), but after a thorough search, this is what I have come up with:
for (ApplicationInfo ai : appInfo) {
    if (ai.sourceDir.startsWith("/data/app/")) {
        //Non-system app
    }
    else {
        //System app
    }
}

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #8
  • 24 maart 2015
  • 13:15

De buttons bovenin m'n scherm.
Blijkbaar komt het door de Class regel waar staat extend en implements.
Ik wil bv Actionbar toevoegen, maar dat lukt me in die regel niet.
Toch heeft de originele bouwer wél een actionbar.
En als ik dan in de xml 2 buttons zet met onclick en die controleer in de java file, dan gebeurt
er gewoon helemaal niks. Ik heb het idee dat er wat dingen worden aangezet (aangeroepen) en andere dingen weer niet.

Ik ben maar een beginner en soms denk ik dat ik het snap, maar dan kom ik weer zoiets tegen en blijkt dat ik echt nog helemaal aan het begin sta. Maar goed, ik snap ook wel, dat je niet binen een jaar een pro bent. ;-)

Dat kiezen van systeem of eigen apps, dat lukt wel, maar alleen als ik het in het origineel wijzig. Als ik het op het tweede blad wijzig (copie van de eerste), springt hij blijkbaar toch naar iets waardoor ik de gegevens van het eerste blad krijg.
Ja het is allemaal wazig, maar hopelijk toch duidelijk.

Bewerkt (24 maart 2015 13:23)

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #9
  • 24 maart 2015
  • 19:14

Nee, de opensourcecode die ik gebruik, daar kom ik niet uit. Ik ga op zoek naar iets anders. Jammer.

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Timelord

Timelord

  • Lid sinds 05 juni 2010
  • Berichten 2367
  • Reputatie 20
  • #10
  • 24 maart 2015
  • 20:51

Hier ook weer zoiets:

http://techblogon.com/get-installed-applications-list-android-example/#comment-4845
Het ziet er echt heel simpel uit.
Het enige wat er echter gegeven wordt, is een routine en die moet je dan zelf inpassen.
Ik heb totaal geen idee hoe, wat en waar.
From the above code snippet, you can find all required information. You can now show all information using a List or Vector class and then show on a ListView in Android.

void GetInstalledAppList()
{
  final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
  mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  final List pkgAppsList = getPackageManager().queryIntentActivities( mainIntent, 0);
  for (Object object : pkgAppsList)
  {
    ResolveInfo info = (ResolveInfo) object;
    Drawable icon    = getBaseContext().getPackageManager().getApplicationIcon(info.activityInfo.applicationInfo);
    String strAppName   = info.activityInfo.applicationInfo.publicSourceDir.toString();
    String strPackageName  = info.activityInfo.applicationInfo.packageName.toString();
    final String title = (String)((info != null) ? getBaseContext().getPackageManager().getApplicationLabel(info.activityInfo.applicationInfo) : "???");
   }
}

Ik heb dit, maar ik krijg alleen maar tekst:

 GetInstalledAppList();  (dit staat in OnCreate)
void GetInstalledAppList()
    {
        final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        final List pkgAppsList = getPackageManager().queryIntentActivities( mainIntent, 0);
        for (Object object : pkgAppsList)
        {
            ResolveInfo info = (ResolveInfo) object;
            Drawable icon    = getBaseContext().getPackageManager().getApplicationIcon(info.activityInfo.applicationInfo);
            String strAppName   = info.activityInfo.applicationInfo.publicSourceDir.toString();
            String strPackageName  = info.activityInfo.applicationInfo.packageName.toString();
            final String title = (String)((info != null) ? getBaseContext().getPackageManager().getApplicationLabel(info.activityInfo.applicationInfo) : "???");
            Drawable image = icon;
                       
        }
        ArrayAdapter<String> adapter;
        adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1, pkgAppsList);
        ListView myList=(ListView)findViewById(android.R.id.list);
        // Assign the adapter to this ListActivity
        myList.setAdapter(adapter);
    }

Oukitel K5000 7.0 (nog) ongeroot
Samsung Note geroot 4.2.1 Spirit Rom (op sterven na dood)
HTC Desire geroot Slim Rom 4.4.4
HTC one X + geroot 4.2.2 ViperX+ 2.1.1
One plus one geroot 6.01
LG P990 geroot 2.3
Samsung A8 ongeroot (werk)
Umidigi a5 Pro ongeroot (nog wel).

Reageer

Om te reageren, dien je te zijn ingelogd. Druk op de onderstaande knop om in te loggen of maak een nieuwe account aan.

Inloggen Registreren