FC2ブログ
    11 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 01

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】ネイティブなしでAndroidのSDカードのパスを機種依存しないで取得 

    こんにちは。
    大坂です。

    もう11月も後半に差し掛かりましたね…。
    あっという間に年末になりそうですorz

    さて今週も小ネタです。
    まぁ使えるか使えないかは別としてタイトルの通りです。
    ネイティブ使ってますけど、iOSでカメラロールに絵を置きたい時なんかはこっちの記事に書いてますので、ご参考にどうぞ。

    早速コードと結果を。すごく短いですけど。
    #if UNITY_ANDROID
    using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
    using(AndroidJavaObject exDir = environment.CallStatic("getExternalStorageDirectory")) {
    Debug.Log(joExDir.Call("toString"));
    }
    #endif
    Debugで出るログはXperiaZ4の環境で「/storage/emulated/0」がでてきますね。

    ついでにあんまり変わりませんが、「DCIM」フォルダを直接取りたい時はこんな感じ。
    #if UNITY_ANDROID
    using(AndroidJavaClass environment = new AndroidJavaClass("android.os.Environment"))
    using(AndroidJavaObject exDir =
    environment .CallStatic("getExternalStoragePublicDirectory",
    environment .GetStatic("DIRECTORY_DCIM"))) {
    Debug.Log(exDir.Call("toString"));
    }
    #endif
    結果は「/storage/emulated/0/DCIM」ですね。
    何かアクセスしたくてパスがほしい時はこんな感じで取れますよってことで!

    あ、読み書きしたい時は「AndroidManifest.xml」に以下のパーミッションが必要ですかね?
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    では今週もこれでノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/258-a139abe6
    この記事にトラックバックする(FC2ブログユーザー)