I am trying to perform some pre-uninstallation activity before the app can be uninstalled. I am new to Android development. The broadcast receiver I am trying which does not work. I want to use the Context-registered receivers. Any Suggestions would help
Asked
Active
Viewed 39 times
1 Answers
0
If you want to uninstall any app programmatically. You need app package name.
Manifest(don't required for every API level) :
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
Java :
Uri packageURI = Uri.parse("package:"+"your.packagename.here");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
To get package name of application
PackageManager pm = getPackageManager();
Intent main = new Intent(Intent.ACTION_MAIN, null);
main.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> packages = pm.queryIntentActivities(main, 0);
ArrayList<String> app_name_list = new ArrayList<String>();
ArrayList<String> app_package_list = new ArrayList<String>();
for(ResolveInfo resolve_info : packages) {
try {
package_name = resolve_info.activityInfo.packageName;
app_name = (String)pm.getApplicationLabel(
pm.getApplicationInfo(package_name
, PackageManager.GET_META_DATA));
boolean same = false;
for(int i = 0 ; i < app_name_list.size() ; i++) {
if(package_name.equals(app_package_list.get(i)))
same = true;
}
if(!same) {
app_name_list.add(app_name);
app_package_list.add(package_name);
}
app_name = app_name.toLowerCase();
package_name = package_name.toLowerCase();
applicationArray.put(app_name,package_name);
Log.i("Check", "package = <" + package_name + "> name = <" + app_name + ">");
//Log.d("APPLICATION_ARRAY", String.valueOf(applicationArray));
} catch(Exception e) { }
}