我正在尝试仅通过使用 PackageInstaller 和 PackageManager API 在我的设备上安装软件包(从在其上运行的设备所有者应用程序)。我一直在寻找示例,但找不到任何适合我需要的东西。
这是我安装 Facebook 应用程序的代码示例:
PackageManager pm = getPackageManager();
PackageInstaller mPackageInstaller = pm.getPackageInstaller();
PackageInstaller.SessionParams mSessionParams = new PackageInstaller.SessionParams(SessionParams.MODE_FULL_INSTALL);
mSessionParams.setReferrerUri(Uri.parse("file:///mnt/sdcard/Download/Facebook.apk"));
int mSessionId = mPackageInstaller.createSession( mSessionParams );
PackageInstaller.Session mPkgSession = PackageInstaller.openSession(mSessionId);
OutputStream mOStream = mPkgSession.openWrite("com.facebook.katana", 0, -1);
mPkgSession.fsync(mOStream);
我想,我需要启动的下一个函数是“commit(IntentSender statusReceiver)”。
所以请告诉我如何使用 commit(),尤其是如何声明一个适当的 IntentSender 来安装存储在 /sdcard 中的 APK。
谢谢 !!