2011-03-25 7 views
2

私はGalaxy Tab用のアプリケーションを開発していますが、/ data/dataフォルダにいくつかのファイルが必要です。デバイスのルートにあるAcessファイル

エミュレータは本当に遅いです。だから、私はデバイス上でテストしており、デバイスからファイルを取得する必要があります(エミュレータから行うことができます)。どうやってやるの?

答えて

5

コードにデバッグ機能を追加して、保護されたフォルダから携帯電話のSDカードに必要なファイルをコピーします。その後、PCからアクセスできます。

public static void backupFile() throws IOException { 

    String inFileName = "/data/data/your.package.name/........"; //TODO Use folder/filename 
    File inFile = new File(inFileName); 
    FileInputStream fis = new FileInputStream(inFile); 

    String outFileName = Environment.getExternalStorageDirectory()+"/........"; //TODO Use output filename 
    OutputStream output = new FileOutputStream(outFileName); 

    byte[] buffer = new byte[1024]; 
    int length; 
    while ((length = fis.read(buffer))>0) 
    output.write(buffer, 0, length); 

    output.flush(); 
    output.close(); 
    fis.close(); 
} 
+0

ニース!決して死ぬとは言わない。 –

+0

ああ、ニフティ!これは便利です。 – slund

+0

Interisting。私はこれが解決策になると思う。 –

1
adb pull <path> 

は、デバイスから現在のディレクトリにファイルをダウンロードします。

adb shellを使用して、一般的なシェルコマンドを使用してデバイスを探索することもできます。 adb shell ls <path>は実際にシェルに完全に入ることなくこれを行うことができます。

編集 -/dataディレクトリまたは他の制限されたディレクトリ内のファイルに対しては、デバイスへのルートアクセスがない限り、これは機能しません。

+0

エラー:デバイスのアクセス許可が不十分です。 –

+0

はい、残念ながら特定のディレクトリは制限されています。/data/data内のアプリケーションディレクトリは、そうであってはいけません。興味深いのは –

+0

です。私は/ data/dataの下にあるものはこのようにアクセスできないという印象を受けました。私は決してルートされていないデバイスの/ dataからファイルを引き出すことができませんでした。おそらく私はちょうど正しいファイルを選んだことはありませんでしたか? – slund

3

デバイスの/ dataディレクトリには、アクセス権が制限されています。 adbを使用してファイルをコピーするには、自分のデバイスをルートしている必要があります。

関連する問題