2016-08-19 3 views
1

私は、.mp3ファイルをダウンロードできるAndroidアプリケーションを開発しています。 ファイルをダウンロードするために設定したパスiは、 "/sdcard/downloadedfile.mp3"です。それはsdcardに行く予定ですファイルをダウンロード中に電話機の内部メモリへのパスを設定する方法は?

デバイスの内部メモリへのパスを設定します。だからsdcardを持っていないデバイスは、デフォルトで内部メモリに行く必要があります。

誰かが私のためにsolltionを見つけることができます..>?

+0

/SDカード上の権限とランタイム許可を追加することを忘れないでくださいリムーバブルマイクロSDカードのパスではありません。デバイスの外部メモリです。マイクロSDカードではありません。 – greenapps

+0

しかし、それはまだそのパスをハードコードすることは悪い考えです。アンサーを使用してください。 – greenapps

答えて

1

@Android開発の練習私はuがこの試すことができると思い

:ところで

String fileName="name.mp3"; 
File folder = new File(Environment.getExternalStorageDirectory().getPath() + "/floderName/"); 

if (!folder.exists()) { 
    try { 
     folder.mkdirs(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     System.out.println("Default Save Path Creation Error:" + folder); 
    } 
} 

File logFile = new File(folder, fileName); 
if (!logFile.exists()) { 
    try { 
     logFile.createNewFile(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     System.out.println("Default Save Path Creation Error:" + logFile); 

    } 
} 

は、 android6.0

+0

ありがとうございます... :) –

1

内部ストレージの場所は権限で保護されているため、提供する場所はアプリケーションのみにアクセスできます。このようにすることができます。

(1)「外部」ストレージにファイルパスを提供するこれは、完了したらすぐにやっていることです。内部ストレージにコピーしてから、外部ストレージにファイルを削除してください。

(2)DownloadManagerが書き込むContentProviderを作成し、このContentProviderに対応するURIを与えます。実装するContentProviderは、アプリケーションのコンテキストで実行されるため、内部ストレージにファイルを書き込むことができます。ここで

1

は、あなたの内部ストレージのファイルのコードです:

String songname= "Song_Name" ; 
File storageDir = Environment.getExternalStorageDirectory(); 
File.createTempFile(
       songname, /* prefix */ 
       ".mp3",   /* suffix */ 
       storageDir  /* directory */ 
     ); 

とストレージを書き込む権限を取得することを忘れないでください。

+0

ありがとうございました:) –

+0

メモリ内に新しいフォルダを作成してそのファイルを保存する方法を教えてください。 –

+0

in storageDir varibale add "/ myfoldername"特定のディレクトリを作成する –

関連する問題