外部ストレージがマウントされていて読み取り/書き込み可能かどうかを確認してから、そこから読み取ります。正確な公式の Android サンプル コードを使用しています (ここから)。
外部ストレージがマウントされていないと表示されます。getExternalFilesDir(null)
戻りますnull
。
まず、外付けSDカードが挿入されていない(ただし、内部に大容量ストレージがある)HTC One Vで体験しました。
現在、私は WayteQ xTAB-70dci タブレットで同じことを経験しています。このタブレットには巨大な「内部 SD カード」があり (これがタブレットの呼び方です)、外部 SD カードが挿入されていません。
どちらの場合も、標準の Android API (getExternalStorageState()
などgetExternalFilesDir()
) は false を返します。
私は絶対にうんざりしています。明らかに、私のアプリ (グラフィックスの多いゲーム) にお金を払っているユーザーは、巨大な内部 SD カード (WayteQ など) を備えた携帯電話/タブレットに適切にインストールされることを期待しています。
ここで何が問題なのですか?なぜこれらのデバイス (HTC、WayteQ など) は、巨大な内部 SD ストレージではなく、外部 SD カード (通常、デフォルトでは製品にはありません) を指しているのですか? 絶対に非論理的で有害ですらあります。これに対する標準的な回避策はありますか?