2017-04-27 14 views
0

Androidデバイスの外部ストレージ(sdcard)にファイルを作成しようとしていて、そのファイルで読み書き操作を実行しようとしています。しかし、私はアプリケーションを通してsdcardにアクセスすることができません。Androidアプリケーションの外部sdcardにアクセスできない

私はアンドロイドマシュマロを使用しています。

私は私のmenifestで許可を与える:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

私はそれは私が成功した読み取りおよび書き込みが可能な/storage/emulated/0パスを与えるEnvironment.getExternalStorageDirectory()を使用する場合。

しかし、私は/storage/6161-3432にマウントされた私の外部のsdcardで読み書きを行いたいと思います。私はそのような操作を実行することができません。

ファイルを開いて特定のパスで操作できるJNIコードで試してみます。ここでも私は/storage/emulated/0パスにアクセスできますが、私のSDカードパスにはアクセスしません/storage/6161-3432

どうすればアプリケーションで外部のSDカードにアクセスできますか?

+0

あなたのアプリケーションをテストするために使用しているOSのバージョンは何ですか?エミュレータ/デバイスのOSが23> =より大きい場合、権限を動的に割り当てる必要があります。 –

+0

'動的に権限を割り当てる '。割り当てるものは何もありません。アプリのユーザーに許可を確認するためのコードが必要です。 – greenapps

+0

'私の外部のSDカードに読み書きをしたい。答えの1つを使用すると、SDカードの特定のディレクトリにのみ読み書きすることができます。カードの残りの部分は、あなただけが読むことができます。権限は必要ありません。 – greenapps

答えて

1

それはあなたの携帯電話内のすべての可能なストレージ・オプションのあなたのリストを与える、次のコードを使用します -

File[] filesDirectory = context.getExternalFilesDirs(name); 
+0

お返事ありがとうございます。私はあなたの方法を試みたが、 'File [] filesDirectory = context.getExternalFilesDirs(name);'はAndroidスタジオでは動作しませんでした。ですから、私は 'File [] filesDirectory = getBaseContext()。getExternalFilesDirs("/storage/XXXX-XXXX ");を使用します。 + filesDirectory [I] .getName(: \t \t \t \t { \t \t \t \t \t Log.d(TAG、 "ファイル名"(; iがfilesDirectory.lengthを Hiren

+0

テストするAndroidバージョンはどれですか。 –

+0

またはFile []で試してみてください。Dirs = ContextCompat.getExternalFilesDirs(MyApp.GetContext()、null); –

関連する問題