1

デスクトップに 4 つの txt ファイルがあります。これらのファイルを読み取って EditText に出力する Android アプリを作成しますが、これらのファイルは ddms -> myapp -> data -> files のドラッグ ドロップです。

したがって、エミュレーターを使用するとアプリは正しく再生されますが、携帯電話ではこれらのファイルを読み取らずにアプリを閉じてください。

これは私のコードです:

    public String ReadFileTrack1()
    {
      FileInputStream fIn = null;
      InputStreamReader isr = null;
      char[] inputBuffer = new char[900];
      String data = null;

      try
      {
         fIn = openFileInput(tracks[0]+".txt");
         isr = new InputStreamReader(fIn);
         isr.read(inputBuffer);

         data = new String(inputBuffer);
      }   

      catch (Exception e) 
      {
         e.printStackTrace();
      }

      finally 
      {
         try 
         {
             isr.close();
             fIn.close();
         } 

         catch (IOException e) 
         {
             e.printStackTrace();
         }
      }

      return data;
    }

コードは正しいのですが、携帯電話で再生できません。この問題に対して何ができますか? アプリが正しく再生されるように、これら 4 つの txt ファイルを携帯電話に読み込むにはどうすればよいですか?

4

1 に答える 1

1

アプリケーションが最初にサブディレクトリを作成し、他のユーザーにそのサブディレクトリへの書き込みアクセスを許可しない限り、セキュリティで保護されたデバイス上のアプリのプライベート ストレージ ディレクトリに書き込むことはできません (これは一般的に悪い考えです)。

代わりに外部ストレージ (sdcard) にファイルを置くか、ビルド時に apk にアセットとしてパッケージ化します。

(例外があります: アプリケーションがデバッグ可能に構築されている場合、adb シェルの run-as ツールを使用して、アプリケーション ユーザーとしてプライベート ディレクトリに何かをコピーできますが、それはあいまいであり、そのまま使用したくないものです。ファイナライズされたアプリには適用されません。通常、この機能は別の方向に使用され、開発中のアプリが正しく動作していないときにファイルやデータベースに対して何を行ったかを調べるために使用されます)

于 2012-12-08T03:08:27.153 に答える