我正在为基于Android的标牌开发自定义启动器(使用 MiniPC 而不是设备),并按照此主题开始 - > uninstall app silently with system priveleges启用第三方APK的静默卸载,这是远程安装所必需的。我们的标牌管理员卸载。
我的实现遵循上面代码中的代码,如下所示
private class PackageDeleteObserver extends IPackageDeleteObserver.Stub {
@Override
public void packageDeleted(String packageName, int returnCode) throws RemoteException {
}
}
//.... other codes ... //
@Override
protected void onHandleIntent(Intent intent) {
//.... other codes ... //
for (int x = 0; x < compliances.size(); x++) {
deleteObserver = new PackageDeleteObserver();
packageManager = getPackageManager();
Class<?>[] uninstalltypes = new Class[] {String.class, IPackageDeleteObserver.class, int.class};
Method uninstallMethod = packageManager.getClass().getMethod("deletePackage", uninstalltypes);
AppShortcut asc = compliances.get(x);
if (existing.contains(asc) && !asc.isInstalled()) {
uninstallMethod.invoke(packageManager, new Object[] {asc.getName(), deleteObserver, 0});
}
}
}
虽然我的带有错误标志的清单如下所示
但我忽略了这些错误标志,并使用Genymotion模拟器我运行它,我在logcat中得到以下错误
如果有人让这个作品帮助我......