-1

私はアンドロイドアプリを作っており、自分の電話機でどれくらいのスペースをデータで占有しているかをユーザーに表示したいと考えています。現在のアンドロイドアプリケーションで使用されているデータ量を取得する方法は?

私は現在、データベースファイルのサイズを取得しており、アプリケーションファイルをパッケージ化し、それらを一緒に追加していますが、アンドロイドアプリの設定に表示されている統計の近くはありません。

設定アプリに表示されるデータを取得する方法がある場合、私は思ったんだけど:私の現在のアプローチとして enter image description here

long dbsize = DAL.Repository.getDBSizeinKB(); // is 18 MB 
ApplicationInfo appinfo = a.PackageManager.GetApplicationInfo(a.ApplicationInfo.PackageName, 0); 
long appsize = new FileInfo(appinfo.SourceDir).Length/1000; // 4MB 
string spaceUsed = ""; 
long totalsize = dbsize + appsize; 
spaceUsed = totalsize.ToString() + " kB"; 
if (totalsize >= 1000) 
    spaceUsed = (totalsize/1000).ToString() + " MB"; 
sizeView.Text = "Space used: " + spaceUsed; // 22MB 

はオフになっています。

答えて

0

getting the root directory of your appgetting the size of all its directory tree recursivelyをお試しください:

PackageManager m = getPackageManager(); 
String s = getPackageName(); 
long size; 
try { 
    PackageInfo p = m.getPackageInfo(s, 0); 
    s = p.applicationInfo.dataDir; 
    File directory = new File(s); 
    size = folderSize(directory); 
} catch (PackageManager.NameNotFoundException e) { 
    Log.w("yourtag", "Error Package name not found ", e); 
} 

folderSize():

public static long folderSize(File directory) { 
    long length = 0; 
    for (File file : directory.listFiles()) { 
     if (file.isFile()) 
      length += file.length(); 
     else 
      length += folderSize(file); 
    } 
    return length; 
} 
関連する問題