問題タブ [android-fileprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2448 参照

android - Gmail アプリで画像を添付しているときに、添付ファイルを送信できませんでした。

ギャラリーから取得した画像のファイル パスがあり、各ファイル パスを ArrayList に追加しています。すべてが正常に機能し、Gmail で添付ファイルを見ることさえできました。しかし、一度画像を送ろうとすると。添付ファイルを送信できませんでしたというエラーが表示されます。この問題を解決するのを手伝ってください。私は解決策に完全に行き詰まっています。前もって感謝します。

画像のパスは次のようなものです/storage/emulated/0/myfolder/1433917106851_fact_2.jpg

注: mShareImages はArrayList<Uri>. を使用して変換ArrayList<String>していますArrayList<Uri>

最後に、この uri オブジェクトを ArrayList に追加します

0 投票する
7 に答える
75595 参照

android - Android にファイル ピッカーを実装し、選択したファイルを別の場所にコピーする

Android プロジェクトにファイル ピッカーを実装しようとしています。私がこれまでにできたことは次のとおりです。

そして、私の中でonActivityResult()

これはファイルピッカーを開いていますが、それは私が望むものではありません。たとえば、ファイル (.txt) を選択し、それを取得してFile使用したいとします。このコードを使用すると、完全なパスを取得できると思いましたが、そうではありません。たとえば、次のようになります/document/5318/。しかし、このパスではファイルを取得できません。PathToFile()を返すというメソッドを作成しましたFile

私がやろうとしているのは、ユーザーがどこからでも a を選択できるようにするFileことですDropBox, Drive, SDCard,Megaなど...しかし、それは機能しないので、それ自体を取得する方が良いと思います。次に、これをプログラムで使用して、これまたは.PathFilePathFileFileCopyDelete

EDIT (現在のコード)

じぶんのIntent

そこで何がサポートされているのかわからないので質問なのtext/plainですが、調べてみますが、今のところ関係ありません。

私は@Lukas Knuth answeronActivityResult()と同じものを使用しましたが、それで別の部分にこれができるかどうかはわかりません。彼の答えを待っています。CopyFileSDcard

getPath()@YS さんから

私はこれをやっています:

取得していNullPointerExceptionます:

java.lang.RuntimeException: 結果 ResultInfo{who=null, request=131073, result=-1, data=Intent { dat=file:///path typ=text/plain flg=0x3 }} をアクティビティ {info に配信できませんでした.androidhive.tabsswipe/info.androidhive.tabsswipe.MainActivity2}: java.lang.NullPointerException

@YS@Lukas Knuth、および@CommonsWareのおかげでコードが機能するように編集します。

これは、Intentファイルのみを受け入れる場所ですtext/plain

のデータを取得onActivityResult()する場所を作成し、実行中の絶対パスを保存する場所を作成し、それをwith で使用するためにパスの名前を保持します(@YS が知らなかったのは素晴らしいことでした)その関数)、私が呼び出した秒を作成し、これを作成できるに送信します。URIIntentFilecontent_describer.getPath();TextViewcontent_describer.getLastPathSegment();FiledestinationAbsolutePathFile

source fileまた、送信する必要がある関数を作成しましたdestination file。これは、以前に作成したもので、これを新しいフォルダーにコピーします。

また、このフォルダーが存在するかどうかを確認する関数を作成しました (存在destination fileしない場合はこのフォルダーを作成し、存在しない場合は何もしません。

皆さんの協力に感謝します。皆さんと一緒に作成したこのコードを楽しんでいただければ幸いです :)

0 投票する
1 に答える
2549 参照

android - 内部ストレージにある画像をトリミング

Android でクロップ インテントの使用に問題があります。

アプリの内部ストレージ割り当てに画像を保存していますが、それらをトリミングして壁紙として設定できるようにしたいと考えています。

次のコードを使用して、外部ストレージに保存されている画像で動作させることができます。

インテントの下のコードを実行すると、クロップ インテントの起動に失敗し、結果コード 0 が返されます。

0 投票する
1 に答える
1935 参照

android - Intent.ACTION_GET_CONTENT で選択された任意のファイルを取得して保存します

次の手順を実行する必要があります。

  1. ユーザーがファイルを選択できるようにする (任意の種類のファイル)
  2. 後でファイルにアクセスするための永続的な参照を取得するか、内部ストレージにコピーします。

最初のものは本当に簡単です。Intent.ACTION_GET_CONTENT を使用してファイルを取得する際に問題はありません。ファイルの MimeType も取得できます。しかし、私はコピーすることはできません。

FileInputStreamを使用してコピーしようとしましたが、明らかに許可がありません。誰かが私を助けてくれることを本当に願っています。

権限

インテントコール

ファイルのコピーに失敗しました

エラー:android.system.ErrnoException: open failed: EROFS (Read-only file system)

0 投票する
3 に答える
48696 参照

android - Android: FileProvider IllegalArgumentException /data/data/**/files/Videos/final.mp4 を含む構成済みのルートが見つかりませんでした

プライベートパスからビデオを再生するために使用しようとしていますFileProvider.Facing

コード:

Java コード:

マニフェスト.xml

これに関する手がかりはありますか?

ありがとうニッツ

0 投票する
2 に答える
3599 参照

android - ファイルプロバイダーを使用してアセットを共有する

https://developer.android.com/training/secure-file-sharing/index.htmlに従い、アプリの内部ディレクトリ (/data/data/package/files/xxx/) 内のファイルをクライアント アプリに共有することができます。ファイルプロバイダー。

(内部ディレクトリではなく) assets フォルダー内のファイルをクライアント アプリに共有する方法。

ありがとう

0 投票する
1 に答える
340 参照

android - 致命的な例外: Intent への画像共有中の ThumbnailManager-1

FileProvider を使用して画像を共有しているときに、次の例外が発生しました。以下は私が使っていたコードです。

例外のスタックトレースの詳細は以下の通りです。

共有する電子メールを選択すると画像が正しく共有されますが、メッセージを選択すると失敗します。手伝ってください。

0 投票する
0 に答える
332 参照

java - FileProvider は、プロジェクションで「_data」を使用してクライアント アプリによってクエリされます

FileProviderを実装しています。

プレーンContentProviderよりも優れている点は、セキュリティが優れていることです。

  • の代わりcontent:// Uriにファイル用のfile:/// Uri
  • コンテンツ URI により、一時的なアクセス許可を使用して読み取りおよび書き込みアクセスを許可できます

ポイントの 1 つは、クライアント アプリがデータにアクセスするための実際のファイル パスを認識してはならないということです。

ほとんどのクライアント アプリでは、実際のデータの読み取りを開始する前に、human-friendly name of fileおよび/またはを知ることが重要です。size of the fileこれらのアプリは、 query() メソッドFileProviderを介して名前/サイズを尋ねます。このメソッドは、paramでOpenableColumns ( , ) の 2 つのオプションのみを想定しています。projection_display_name_size

そして今問題。一部のクライアント アプリは_data、データへの実際のフル パスを取得することを期待して、プロジェクションに移行しています。しかし、実際のファイル パスを返すと、FileProviderセキュリティ上の理由から使用するという考え全体が壊れてしまいます。

私の質問は、「何か足りないものはありますか?」です。一部のクライアント アプリの記述が不十分なため、ファイル パスを取得できないためにクラッシュするのは彼らの問題なのでしょうか?