0

外部ストレージがマウントされていて読み取り/書き込み可能かどうかを確認してから、そこから読み取ります。正確な公式の Android サンプル コードを使用しています (ここから)。

外部ストレージがマウントされていないと表示されます。getExternalFilesDir(null)戻りますnull

まず、外付けSDカードが挿入されていない(ただし、内部に大容量ストレージがある)HTC One Vで体験しました。

現在、私は WayteQ xTAB-70dci タブレットで同じことを経験しています。このタブレットには巨大な「内部 SD カード」があり (これがタブレットの呼び方です)、外部 SD カードが挿入されていません。

どちらの場合も、標準の Android API (getExternalStorageState()などgetExternalFilesDir()) は false を返します。

私は絶対にうんざりしています。明らかに、私のアプリ (グラフィックスの多いゲーム) にお金を払っているユーザーは、巨大な内部 SD カード (WayteQ など) を備えた携帯電話/タブレットに適切にインストールされることを期待しています。

ここで何が問題なのですか?なぜこれらのデバイス (HTC、WayteQ など) は、巨大な内部 SD ストレージではなく、外部 SD カード (通常、デフォルトでは製品にはありません) を指しているのですか? 絶対に非論理的で有害ですらあります。これに対する標準的な回避策はありますか?

4

1 に答える 1

1

言ったように、それはデバイスの製造元次第です。内部/外部ストレージポイントを使用したトリックは、Samsung の携帯電話で行われていると思います。

外部が利用可能かどうかを確認することに加えて、/dataディレクトリのサイズを確認して、内部部分にアプリをキャッシュできるかどうかを確認する必要があります。ここを参照してください。ファイルサイズの制限により、リクエストに応じて残りのアプリをダウンロードしていると思いますよね?

おまけ情報: これはそれほど気にする必要はありませんが、優れた開発者として、これも考慮に入れることができます。一部の人々は、外部ストレージの下に異なるフォルダーをマウントする CronMod スクリプトを使用しています。そのため、より多くのスペースがあります。いいですよね?/data/data別のバージョンを使用していて、SD (電話ではより大きな内部メモリとして表示されます) 上にあるが/data/cache、速度のためにまだ内部にある場合に問題が発生します。突然、キャッシュの内部サイズに関する実際のハード データが利用できなくなる場合があります。しかし、繰り返しになりますが、これは主にパワーユーザーによって行われ、何が起きているのかを把握する必要があります。

于 2013-05-24T19:35:00.377 に答える