0

ルートが必要な Android アプリケーションでは、SD カードとの間でファイルをコピーできる必要があります。ほとんどの場合、ルート権限が必要です。私が遭遇した問題は、

    cp -fp <source> <destination>

<destination>またはを<source>含む場合は機能しませんEnvironment.getExternalStorageDirectory()

ログを読んで、失敗していることに気付きましたNo such file or directory

ただし、SDカードにコピーする場合は、シェルでコマンドを実行する前に関数でディレクトリが作成されていることを確認し、SDカードからコピーする場合はファイルが存在することを確認しました。

シェルでファイルをコピーする別の方法はありますか (私は試しましたcp) ?busybox cpcat

または、SD カード上のファイルの場所への直接パスを取得する別の方法はありますか?

4

1 に答える 1

1

私が質問した直後に、実際にこれを解決することができました。情報についてEnvironment.getExternalStorageDirectory()は戻ってきました/storage/emulated/0/

に置き換えることEnvironment.getExternalStorageDirectory()で、/sdcard/すべてが正常に機能しました。

EDIT 1:
交換Environment.getExternalStorageDirectory()すると/sdcard/、デバイスの制限が発生します(以下の靴のネズミが指摘したように)。ふるいにかけるandroid.os.Environmentと、別の使用可能な代替手段が見つかりましSystem.getenv("EXTERNAL_STORAGE")た。すべてが正常に機能します。

于 2013-10-16T03:35:22.097 に答える