Sembra che tu sia in grado di ricevere l'evento di un nuovo pacchetto aggiunto dopo di ciòèun concetto molto semplice ottenere tutte le informazioni rilevanti su quel pacchetto come se una di queste informazioni sia il nome dell'applicazione quindi ecco il concetto
-> il gestore dei pacchetti del tuo dispositivo ha tutte le informazioni ad esso correlate, quindi creane un oggetto che ti darà tutte le informazioni relative al nome del pacchetto.
-> Dovresti anche ricordare che l'intento ti dà "package: real_package_name" quindi prima devi prima ottenere il vero nome rovesciando (ho usato) o da qualsiasi altra semplice implementazione di String
-> Ecco il codice che spero che tu ottenga ciò che desideri. Fornisco anche informazioni su come ottenere il nome dell'app, l'icona dell'app, la versione dell'app, il codice della versione dell'app ecc .....
public class NewAppReciver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.intent.action.PACKAGE_ADDED")){
String[] a=intent.getData().toString().split(":");
String packageName=a[a.length-1];
List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packageInfoList.size(); i++) {
PackageInfo packageInfo = packageInfoList.get(i);
if(packageInfo.packageName.equals(packageName)){
String appName = packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString();
String appVersion = packageInfo.versionName;
int appVerCode = packageInfo.versionCode;
Drawable app_icon = packageInfo.applicationInfo.loadIcon(context.getPackageManager());
}
}
}
}
}
Ma al momento della disinstallazione dell'applicazione è possibile ottenere solo il nome del pacchetto poiché nell'installazione Un tutte le altre informazioni vengono rimosse dal sistema.