import
android.content.Intent;
import
android.content.pm.PackageManager;
import
android.content.pm.ResolveInfo;
import
android.content.res.Resources;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.ArrayAdapter;
import
android.widget.ListView;
import
android.widget.TextView;
import
androidx.appcompat.app.AppCompatActivity;
import
java.util.ArrayList;
import
java.util.List;
public
class
MainActivity
extends
AppCompatActivity {
ListView listView;
TextView text;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listview);
text = findViewById(R.id.totalapp);
}
public
void
getallapps(View view)
throws
PackageManager.NameNotFoundException {
final
Intent mainIntent =
new
Intent(Intent.ACTION_MAIN,
null
);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> ril = getPackageManager().queryIntentActivities(mainIntent,
0
);
List<String> componentList =
new
ArrayList<String>();
String name =
null
;
int
i =
0
;
String[] apps =
new
String[ril.size()];
for
(ResolveInfo ri : ril) {
if
(ri.activityInfo !=
null
) {
Resources res = getPackageManager().getResourcesForApplication(ri.activityInfo.applicationInfo);
if
(ri.activityInfo.labelRes !=
0
) {
name = res.getString(ri.activityInfo.labelRes);
}
else
{
name = ri.activityInfo.applicationInfo.loadLabel(
getPackageManager()).toString();
}
apps[i] = name;
i++;
}
}
listView.setAdapter(
new
ArrayAdapter<String>(MainActivity.
this
, android.R.layout.simple_list_item_1, apps));
text.setText(ril.size() +
" Apps are installed"
);
}
@Override
protected
void
onStart() {
super
.onStart();
}
}