LoginSignup
5
3

More than 5 years have passed since last update.

Unity Androidのストレージ残量を取得(Android4.4.2、5.1.1、6.0.0による確認済み)

Last updated at Posted at 2016-09-01

下記URLを参考にしました。
http://qiita.com/snaka/items/35a6389d35447c2db272

ボタンを押すとプラグイン内のメソッドを呼ぶようにサンプルプログラムを作る。
容量チェック.png

■クリックが押されると計算用処理を呼ぶ

using UnityEngine;
using System.Collections;

public class testClick : MonoBehaviour {

    public void OnClick()
    {
        CallPlugIn.test();
    }

}

■各サイズを取得

using UnityEngine;
using System.Collections;


public class CallPlugIn : MonoBehaviour {

    public static void test()
    {
        Debug.Log("1");
        var statFs = new AndroidJavaObject("android.os.StatFs", Application.temporaryCachePath);
        Debug.Log("2");
        // 指定したファイルシステムでアプリケーションが利用できる領域のブロックサイズを返します。
        var availableBlocks = statFs.Call<long>("getAvailableBlocksLong");
        Debug.Log("3");
        // 指定したファイルシステムで利用できる領域のブロックサイズを返します。返されるブロックにはアプリケーションから利用できない領域を含みます。
        var freeBlocks = statFs.Call<long>("getFreeBlocksLong");
        Debug.Log("4");
        // ファイルシステムのブロックサイズを返します。単位はByte。
        var blockSize = statFs.Call<long>("getBlockSizeLong");
        Debug.Log("5");
        // ファイルシステムの総ブロック数を返します。
        var blockCount = statFs.Call<long>("getBlockCountLong");

        Debug.Log("■getAvailableBlocks=" + availableBlocks.ToString());
        Debug.Log("■getFreeBlocks=" + freeBlocks.ToString());
        Debug.Log("■getBlockSize=" + blockSize.ToString());
        Debug.Log("■getBlockCount=" + blockCount.ToString());
    }
}

■空き容量を求める

availableBlocksblockSize掛け合わせると空き容量の合計バイト数が計算できる。

メガバイトに変換するには

 availableBlocks*blockSize/(1024*1024) とする。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3