0

apache.ftpserver ライブラリを使用して、Android 用の小さな ftp サーバーを実装しました。クライアントから ftp サーバーに接続すると、sd カードの内容を読み書きできるようになりました。マウントされた USB ドライブを読み込もうとすると、それもできます。しかし、USBに何かを書き込もうとすると問題が発生します。USBに何かを書き込むことはできません。

ftp クライアントからディレクトリのアクセス許可を見ると、USB ドライブには書き込みアクセス許可 (W) がなく、実行アクセス許可 (X) しかないことがわかります。

私はAndroid開発に比較的慣れていないため、この問題は専門家には不十分に見えるかもしれませんが、USB書き込みを有効にするために何か追加する必要があるかどうかを尋ねたい.

サーバーの私の実装は非常に単純で、この投稿のものとほぼ同じです。

http://ahmedzubayr.wordpress.com/2012/08/02/ftp-server-using-apache-ftpserver-library/

4

1 に答える 1

0

解決策を見つけました。この問題の理由は、USB ドライブが media_rw グループでマウントされており、このグループにはディスクへの書き込み権限しかないためです。

アプリケーションの観点からは、2 つのことが必要です。

  1. WRITE_MEDIA_STORAGE は、アプリケーション マニフェストのアクセス許可を使用します。
  2. Android OS の署名に使用されたのと同じキーでアプリケーションに署名します。

最初のステップは、アプリが media_rw グループにあるフォルダーに書き込めるようにすることです。media_rw グループ フォルダーへの書き込み権限は、システム アプリまたは Android OS と同じキーで署名されたアプリのいずれかにしか存在しないため、2 番目の手順が必要です。

これら 2 つの変更を加えることで、USB ドライブへの書き込みが魅力的に機能します。

于 2013-05-16T04:21:25.643 に答える