我有一个应用程序记录设备上安装的内部开发的应用程序。安装后,Intent.PACKAGE_ADDED 的广播接收器被调用并使用以下代码记录包名称:
public class NewInstallReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle b = intent.getExtras();
int uid = b.getInt(Intent.EXTRA_UID);
String[] packages = context.getPackageManager().getPackagesForUid(uid);
ApplicationService appService = new ApplicationService(context);
appService.ApplicationInstalled(packages);
}
}
我面临的问题是当使用 Intent.PACKAGE_REMOVED 的广播接收器时,所有通过唯一 Id (UID) 对包的引用都返回空信息(正如您所料,鉴于它已经被卸载)。与此同时,我有一个临时解决方案,但它不是很优雅,对于下一个版本,我希望有更简洁的代码。代码应如何工作的示例:
public class RemoveApplicationReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle b = intent.getExtras();
int uid = b.getInt(Intent.EXTRA_UID);
String[] packages = context.getPackageManager().getPackagesForUid(uid);
ApplicationService appService = new ApplicationService(context);
appService.ApplicationRemoved(packages);
}
}
回顾一下,问题是:
在删除程序后,如何在 Intent.PACKAGE_REMOVED 的广播接收器中引用包名称。
谢谢