インストールされたアプリのサイズを取得する方法を見つけようとしています。
すでに失敗しているもの:
- new File('/data/app/some.apk')
- 間違ったサイズを報告します
- PackageManager.getPackageSizeInfo(String packageName, IPackageStatsObserver observer)
-結果は@hide
不明なものに依存しているIPackageStatsObserver
ため、リフレクション経由で呼び出すことはできません。
ベストアンサー1
残念ながら、現在いいえ正式方法そうする。しかし、あなたはできる電話をかけるPackageManager
隠されていますgetPackageSize
メソッドをインポートする場合PackageStats
そしてIPackageStatsObserver
AIDLをプロジェクトに組み込み、スタブを生成します。その後、リフレクションを使用して呼び出すことができます。getPackageSize
:
PackageManager pm = getPackageManager();
Method getPackageSizeInfo = pm.getClass().getMethod(
"getPackageSizeInfo", String.class, IPackageStatsObserver.class);
getPackageSizeInfo.invoke(pm, "com.android.mms",
new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(PackageStats pStats, boolean succeeded)
throws RemoteException {
Log.i(TAG, "codeSize: " + pStats.codeSize);
}
});
それは明らかにビッグハックそして使用しないでください公共アプリケーション用。