質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

3626閲覧

Androidアプリで、ディスクの容量が一杯の状態にしたい。

usugita_san

総合スコア221

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

2クリップ

投稿2015/04/22 04:34

Androidアプリのテストをしているのですが、ストレージがいっぱいになった時のテストを行いたいと思っています。

原始的な手段ですが、以下の方法を実行しました。
1.Android端末をUSBでPCと接続する。
2.PCから、Android端末にファイルを入れる。
3.容量を一杯にして、1バイトのファイルも入れられないようにする。
4.アプリを実行し、ファイルに書き込みをする。

4の段階で、アプリの内部ストレージにファイルを書き込みました。
例えば、 Context.getCacheDir() で取得したディレクトリにファイルを作成し、そこに書き込みを行いました。

なぜか正常に書き込みをおこなえてしました・・・。

ご質問があります。
このような、アプリ内データ領域の容量を一杯にするにはどうしたらいいでしょうか?
また、アプリ内データ領域の空き容量を確認するにはどうしたらいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

minidora

2015/04/22 06:04

ひとつ教えてください。 「ストレージがいっぱいになった時のテスト」とありますが、「ストレージがいっぱい」と判断するロジックはございますか?
usugita_san

2015/04/22 06:31

無いのです。お恥ずかしい話なんですが・・・。
guest

回答1

0

ベストアンサー

getCacheDirで得られるアプリ専用のキャッシュ領域は、空き容量が不足するとOS側で勝手に削除される仕組みになっています。
ですので、少なくとも上記ディレクトリを使うぶんには残り容量の心配をしたコードを書く必要は無いと思います。

それ以外の領域に書き込む場合は、書き込みエラーが発生したらエラー内容を調べてその旨をユーザーに通知して処理を止めるか、あらかじめ利用する容量が分かっているなら空き容量を計算してから実行を行う、という方法がよろしいかと思われます。
空き容量の取得には、FileクラスのgetFreeSpace()が利用できます。

投稿2015/05/03 04:45

terushu

総合スコア358

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usugita_san

2015/05/13 04:42

ありがとうございます。getCacheDirについて、自動的に削除される事を知らなかったです・・・。 頂いた情報を元に、もう一度設計しなおします。 お騒がせ致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問