我目前正在开发一个用作更新管理器的应用程序。到目前为止,每当我安装或更新任何其他应用程序时,该应用程序都运行良好。所有这些应用程序都已安装在 data/app 文件夹中,并且我使用了带有 installpackage() 方法的 android.content.pm.IPackageManager 类来安装它们。
我正在开发具有内部存储器 (1 GB)、内部 SDCARD (4GB) 和外部 SD 卡 (8GB) 的 costum ROM。由于我所有的应用程序都已安装在数据/应用程序文件夹中,我的内存空间不足!我想知道是否可以使用相同的 installpackage() 方法在外部 SDCARD(或内部)上安装应用程序。
这是我安装应用程序的方式:
private Class<?> iPackageManagerStubProxyClass;
iPackageManagerStubProxyClass = Class
.forName("android.content.pm.IPackageManager$Stub$Proxy");
public void installPackage(Uri uri) throws NoSuchMethodException,
NumberFormatException, IllegalArgumentException, IllegalAccessException,
InvocationTargetException, ClassNotFoundException {
Log.i(LOG_TAG, "installing without deleting");
Method method = getMethod(iPackageManagerStubProxyClass, "installPackage");
method.invoke(packageManagerServiceProxy, uri, getPackageInstallObserver(),
Integer.valueOf(INSTALL_REPLACE_EXISTING | INSTALL_INTERNAL), "");
System.out.println(method);
}
我开始怀疑我不能在 sdcard 上安装应用程序。有什么建议吗?如果不是,我可以在安装后以编程方式将我的应用程序移动到 SD 卡吗?