1

私のアプリは私の仕事で販売を行うために使用されています。

このアプリは、リモートで (Google Play を使用せずに) 自分自身を更新したり、データを更新したり、情報を送信したりできます...

ある時点で、アプリは大量の画像カタログ(数百 MB) を読み取ります。このデータのダウンロードを避けるために、すべての画像を含むマイクロ SD カードが各デバイスに含まれています。

SD カード内の画像を読み取るには、「Environment.getExternalStorageDirectory()」を使用します。今日まで、すべて正常に機能していました。

ただし、新しいデバイスはGalaxyTab 7 Plusで、非常にクールなマシンですが、「Environment.getExternalStorageDirectory() 」を使用すると、内部 SDパスが取得されました。タブレットは外部 SD カードを (「extSdCard」として) 認識しましたが、アクセス方法がわかりません。

「 vold.fstab 」ファイルを試してみました(この質問への回答に続いて、Samsung およびその他すべてのデバイスで正しい外部ストレージを取得するにはどうすればよいですか? ) が、あまり信頼していません... つまり...このことは有効ですか?Android 3.0を搭載したGalaxyTab 10とAndroid 4.0を搭載したGalaxyTab 7 Plusのvold.fstabを確認しましたが、かなり異なります...

要するに、私は常に外部SDカードのパスを取得したいと思っています。これが存在しない場合は、内部SDカードのパスを取得します(存在する場合)。「Environment.getExternalStorageDirectory()」を使用すると、Javaでどちらかを選択できないため、これを行うことはできません

ありがとう!

4

1 に答える 1

1

Android SDK は、少なくとも 4.1 までは、複数の外部ストレージ ポイントの概念をサポートしていません。したがって、ディレクトリの観点からこのセカンダリ カードにアクセスする方法は、文書化されサポートされていません。

そのカードの内容はMediaStore、デバイスの製造元によって追加された独自の拡張機能を介して、によってインデックス付けされる場合があります。私が試した外部 SD カードを備えたすべてのデバイスは、これを行うようです。したがって、ロジックを何らかの方法で調整して、ファイルの場所を気にせず、代わりに 経由MediaStoreでファイルを見つける方法があれば、それはデバイス間で機能するはずです。

それを超えて、あなたがリンクした質問に対するいくつかの回答によると、あなたは推測ゲームで立ち往生しています.

于 2012-08-22T18:38:50.113 に答える