我在由test-dpc创建的托管配置文件中安装了一个appstore应用。在appstore应用程序中,我已使用此代码来卸载应用程序。
PackageManager pm = context.getPackageManager();
PackageInstaller packageInstaller = pm.getPackageInstaller();
pm.setInstallerPackageName(packageName, "com.example.appstore");
Intent broadcastIntent = new Intent(BROADCAST_ACTION_UNINSTALL);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context, // context
0, // arbitary
broadcastIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
packageInstaller.uninstall(packageName, pendingIntent.getIntentSender());
packageName
是将要卸载的应用程序的名称。 com.example.appstore
是我的应用商店的软件包名称。
但这会导致崩溃:
08-27 10:12:56.391 13822-13963/? E/AndroidRuntime: FATAL EXCEPTION: IntentService[InstallerService]
Process: com.example.appstore, PID: 13822
java.lang.SecurityException: Unknown calling UID: 1210083
at android.os.Parcel.readException(Parcel.java:2004)
at android.os.Parcel.readException(Parcel.java:1950)
at android.content.pm.IPackageManager$Stub$Proxy.setInstallerPackageName(IPackageManager.java:4124)
at android.app.ApplicationPackageManager.setInstallerPackageName(ApplicationPackageManager.java:1842)
at org.fdroid.fdroid.installer.PrivilegedInstaller.uninstallPackage(PrivilegedInstaller.java:342)
at org.fdroid.fdroid.installer.InstallerService.onHandleIntent(InstallerService.java:79)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:76)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.os.HandlerThread.run(HandlerThread.java:65)
但是,当我在所有者个人资料中安装了应用商店时,应用商店成功卸载了应用。仅在托管配置文件中会发生此崩溃。 有人对此错误有解决方案吗?