プログラムによるAPKのインストール/アンインストール(PackageManagerとIntents)
私のアプリケーションは他のアプリケーションをインストールし、インストールしたアプリケーションを追跡する必要があります。もちろん、これは、インストールされているアプリケーションのリストを保持するだけで実現できます。しかし、これは必要ないはずです!installedManager(a、b)関係を維持するのはPackageManagerの責任です。実際、APIによると、 public abstract String getInstallerPackageName(String packageName)- パッケージをインストールしたアプリケーションのパッケージ名を取得します。これは、パッケージがどの市場から来たかを識別します。 現在のアプローチ インテントを使用してAPKをインストールする Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); startActivity(intent); インテントを使用してAPKをアンインストールします。 Intent intent = new Intent(Intent.ACTION_DELETE, Uri.fromParts("package", getPackageManager().getPackageArchiveInfo(apkUri.getPath(), 0).packageName,null)); startActivity(intent); これは明らかにAndroid Marketがパッケージをインストール/アンインストールする方法ではありません。それらは、PackageManagerのより豊富なバージョンを使用します。これは、AndroidソースコードをAndroid Gitリポジトリからダウンロードすることで確認できます。以下は、インテントアプローチに対応する2つの非表示メソッドです。残念ながら、外部の開発者はそれらを利用できません。しかし、おそらくそれらは将来的になるでしょうか? より良いアプローチ PackageManagerを使用したAPKのインストール /** * @hide * * Install a package. Since this may take a little while, the result will …