Здається, ви можете отримати подію нового пакета, доданого після цього, його дуже просту концепцію, щоб отримати всю відповідну інформацію про цей пакет, як одна така інформація - це назва програми, тому ось концепція
-> у вашому менеджері пакетів пристроїв є вся інформація, пов’язана з ним, тому просто зробіть об’єкт, який дасть вам всю інформацію, пов’язану з назвою пакета.
-> Ви також повинні пам'ятати, що намір дає вам "package: real_package_name", тому спочатку вам потрібно спочатку отримати справжнє ім'я шляхом розливу (я використовував) або за допомогою будь-якої іншої простої реалізації String
-> Ось код, сподіваюся, ви отримаєте те, що хочете. Я також даю інформацію про те, як ви можете отримати назву програми, піктограму програми, версію програми, код версії програми тощо .....
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());
}
}
}
}
}
Але під час видалення програми ви можете отримати лише ім'я пакета, оскільки при встановленні Un вся інша інформація видаляється системою.