Get list of app icons and app names of all installed apps in Sketchware

We can create a list of app names, app icons, app versions and app package names from information received using PackageInfo class.


Follow the steps below to create a list of all installed apps, with app name, app icons, package name, version name and version code.

1. In VIEW area of your sketchware project, in main.xml add a ListView.
2. Add a new CustomView custm.xml and in this add an ImageView and four TextViews.
3. For the ImageView​ set width and height as 60dp and scale_type as FIT_XY.
4. In main.xml, for ListView select custm as customView.
5. In LOGIC area, add four List String (list11, list12, list13, and list14), add a List Map (list1), and an Intent component i. These four will act as list of app name, package name, version name, and version code.


6. In onCreate event, add an add source directly block. Inside the block add following code.

List<android.content.pm.PackageInfo> listn = getApplicationContext().getPackageManager().getInstalledPackages(0);

This will create a list of PackageInfo of all installed apps.


7. Add another add source directly block and add following code in it.

for (android.content.pm.PackageInfo packageInfo : listn) {
list11.add(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
list12.add(packageInfo.packageName);
list13.add(packageInfo.versionName);

list14.add(String.valueOf(packageInfo.versionCode));

This code will retrieve information from PackageInfo list, and add items to new lists. It will add all app names to list11, all package names to list12, all version names to list13, and all version codes to list14.

8. Next, use Block add key X value X to List Map list1.

9. Add another add source directly block and put following code in it:
{
HashMap<String, android.graphics.drawable.Drawable> _item = new HashMap<String, android.graphics.drawable.Drawable>();
_item.put("itm",packageInfo.applicationInfo.loadIcon(getPackageManager()));
list6.add(_item);
}

}
This code gets app icons from the list of PackageInfo and adds them to list6.

10. After this add a ListView setListCustomViewData List Map block, as shown in image below.

11. Add another add source directly block. Inside the block, add a } bracket to close onCreate event, and after that write code for a new HashMap list, list6. This will act as list of icons. The code to be used is given below.

}
private ArrayList < HashMap < String, android.graphics.drawable.Drawable> > list6 = new ArrayList<>(); private void nothing() {

This should be the last block in onCreate event. There should be no block placed after this. This code can also be added in a more block.

12. Add a new event ListView onBindCustomView, and set the text of all TextViews in CustomView, to the String lists list11, list12, list13, and list14. Also add code to set icons as image of imageview1. The blocks to be used is shown in image below.

The code to be used in add source directly block is:

imageview1.setImageDrawable(list6.get((int)_position).get("itm"));

Here imageview1, is id of Imageview in CustomView, and list6 is the new Drawable list created in above step.

13. Add another​ event ListView onItemClicked, and here use Intent component blocks to open the app when it is clicked. The blocks to be used is shown in image below.

14. Save and run the project. You will see a custom list with list of all installed apps with icons, package names, etc.

Watch the video below for better understanding.
     

Comments

  1. Please tell me how to implement the search function in this application?

    ReplyDelete
    Replies
    1. list11 is the list of all app names. Add an EditText and search this list using repeat Block and if..else.. block in EditText onTextChanged event.

      Delete
    2. This comment has been removed by the author.

      Delete
  2. Check the blocks used in EditText onTextChanged on this post:
    http://www.sketchwarehelp.com/2017/09/how-to-create-dictionary-app-in.html?m=1

    ReplyDelete
    Replies
    1. Thank you for having responded to me. But I did not understand the method)) I'll try again.

      Delete
    2. sanjeev Can you detail all informations.... I don't understand how to do with the other subject...🤔

      Delete
    3. This comment has been removed by the author.

      Delete
  3. I can not get the onclick start app code to work

    ReplyDelete
  4. Hiw to filter system and user apps? I tried it with codes from stackoverflow.com but the did not work for me. Can u help me or is it not possible in Sketchware.

    ReplyDelete
  5. How to filter user installed app packages over system packages
    Please anyone help me out this

    ReplyDelete

Post a Comment

Popular posts from this blog

A Flash Light App in Sketchware

Create Music Player app in Sketchware

In Sketchware: How to create a calculator for any simple formula?

Simple car racing android game in Sketchware

Firebase auth in Sketchware for Login Activity