ここなどが参考になります。
http://iwatanlab.blogspot.jp/2011/03/android.html
IPackageStatsObserver.aidl,PackageStats.aidlを
src/android/content/pmに追加して、下記のコードで実現しています。
非同期のコールバックになるので、アプリ数が多い、CPUが早くない、
と、それなりに遅いです。(設定-アプリケーションと同じことをするため)
IPackageStatsObserver.aidl,PackageStats.aidlを検索すれば、
色々出てきますよ。
データ容量はキャッシュを含まなかったかな。
long lngCacheSize;
long lngCodeSize;
long lngDataSize;
Method getPackageSizeInfo = null;
try {
lngCodeSize = -1;
getApplicationSize(packageManager,count,strClassName);
while(lngCodeSize == -1) {
Thread.sleep(1);
}
}
catch (Exception e) {
}
public void getApplicationSize(
PackageManager packageManager
, int index
, String strClassName
)
throws Exception
{
if(getPackageSizeInfo == null) {
getPackageSizeInfo =
packageManager.getClass().getMethod(
"getPackageSizeInfo"
, String.class
, IPackageStatsObserver.class
);
}
getPackageSizeInfo.invoke(
packageManager
, strClassName
, new IPackageStatsObserver.Stub() {
@Override
public void onGetStatsCompleted(
PackageStats pStats
, boolean succeeded
)
throws android.os.RemoteException
{
lngCacheSize = pStats.cacheSize;
lngCodeSize = pStats.codeSize;
lngDataSize = pStats.dataSize;
}
});
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。