2012-02-22 20 views
0

私はファイルをダウンロードして保存するアプリを作成しています。ですから、私はウェブからダウンロードした音楽を保存する場所が必要です。アンドロイドアプリにデータを保存して隠す

ユーザーは聞くことができますが、ユーザーはその音楽を取得できません。 私は、ユーザーが見ることのできないファイルを格納できる場所が必要です。

誰かが私にこれをどうやってすることができますか? また、私はsqliteデータベースを保存する場所が必要です。

ありがとうございました。

P.S.また、私はそのアクティビティを呼び出す前に、どのようにsetSomethingをActivityクラスに呼び出すことができるのかの例を検索しています。

今、私は次のように呼び出しています:

Thread my_files_thread = new Thread(){ 

    //start thread 
    public void run(){ 
     try{ 

      startActivity(new Intent("android.app.reader.FILES")); 

     }catch (Exception e) { 
       // TODO: handle exception 
      e.printStackTrace(); 
      }finally{ 

       //finish(); 
      } 
    } 

};// Brackets means that thread is closing 
+1

Simeple回答を助け

希望は、単にユーザーがファイルは、彼がコンピュータにSDカードを接続したときにすることを見つけることができるという方法がありませんSDカード – Android

+0

に保存しますか? – Streetboy

+0

特定のパスを宣言せずにデータを保存すると、アプリケーションのディレクトリが自動的に選択されます。ルート以外のデバイスでは、このディレクトリは非表示です。 – 2red13

答えて

0

あなたの活動の使用から、この保存するには:

try { 
     FileOutputStream fos = openFileOutput("file.mp3", Context.MODE_PRIVATE); 
     fos.write(...) // etc 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

次に開くためにこれを使用する:

FileInputStream fis = context.openFileInput("file.mp3"); 

ファイルにのみになりますあなたのアプリに表示され、SDカードが乱雑に詰まることはありません。ユーザーがアプリの設定に移動して[アプリデータを消去]を押すと、ファイルは失われます。これは

+1

暗号化を考えるよりも、ユーザーがルートデバイス上のファイルにアクセスできるようにすることは避けられませんが、これはルーツを持つデバイスでファイルにアクセスできるケースの1つです – 2red13

+0

彼らのデバイスは、彼らが望むものをほとんど行い、彼らが望むものにアクセスすることができます。 –

関連する問題