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.
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.
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.
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.
}
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"));
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.
Watch the video below for better understanding.
I canr doend liatview on blond view
ReplyDeleteWhat are you asking? I didn't understand.
Deletenumber 9 dis not complete
ReplyDeletePlease tell me how to implement the search function in this application?
ReplyDeletelist11 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.
DeleteThis comment has been removed by the author.
DeleteCheck the blocks used in EditText onTextChanged on this post:
ReplyDeletehttp://www.sketchwarehelp.com/2017/09/how-to-create-dictionary-app-in.html?m=1
Thank you for having responded to me. But I did not understand the method)) I'll try again.
Deletesanjeev Can you detail all informations.... I don't understand how to do with the other subject...🤔
DeleteThis comment has been removed by the author.
DeleteI can not get the onclick start app code to work
ReplyDeleteThis comment has been removed by the author.
DeleteAdd this code in list view "on item selected"
Deleteprivate Intent i = new Intent();
i = getPackageManager().getLaunchIntentForPackage(list12.get((int)(_position)));
startActivity(i);
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.
ReplyDeleteHow to filter user installed app packages over system packages
ReplyDeletePlease anyone help me out this
Add this code instead of a normal for loop that sanjeev has shown.
Deletefor (android.content.pm.PackageInfo packageInfo : listn) {
if((packageInfo.applicationInfo.flags & android.content.pm.ApplicationInfo.FLAG_SYSTEM)==0){
list11.add(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
list12.add(packageInfo.packageName);
{
HashMap _item = new HashMap();
_item.put("itm",packageInfo.applicationInfo.loadIcon(getPackageManager()));
list6.add(_item);
}
}
}
I removed list13 and list14. Kindly add them on your own.
Thanks a lot to you and to Sanjeev
DeleteIs there a way to decompile the apk content
ReplyDeletesó copiar ele pra outro caminho trocando o .apk por .zip
DeleteIs there a way to decompile the apk content
ReplyDeleteI have an application package name. Is there any way to get the lib path, data path of this application to textview? package name example: com.example.name 😶
ReplyDeleteI have an application package name. Is there any way to get the lib path, data path of this application to textview? package name example: com.example.name 😶
ReplyDeleteHow i can get info of only running app. Plz reply
ReplyDeleteHello everybody. Can anyone please tell me the code to get the list of USER INSTALLED APPS (not system). If anyone knows that please mail it to gouthamsanthosh04@gmail.com
ReplyDeleteIt would be a great help.
Hello everybody. Can anyone please tell me the code to get the list of USER INSTALLED APPS (not system). If anyone knows that please mail it to gouthamsanthosh04@gmail.com
ReplyDeleteIt would be a great help.
This comment has been removed by the author.
ReplyDeletesir how to i search apps by name plz...
ReplyDeleteHow do you prevent system apps from appearing in the list. I'd like to use this as a sort of launcher system but dont wanna mess with the system app
ReplyDeleteHow to hide android system apps
ReplyDeleteHow can I sort the list alphabetically, I was only able to sort the listrings but not the drawable
ReplyDeleteHoe can i make the apps load faster instead of waiting 5 secs?
ReplyDelete