問題タブ [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.
android - Gmail アプリで画像を添付しているときに、添付ファイルを送信できませんでした。
ギャラリーから取得した画像のファイル パスがあり、各ファイル パスを ArrayList に追加しています。すべてが正常に機能し、Gmail で添付ファイルを見ることさえできました。しかし、一度画像を送ろうとすると。添付ファイルを送信できませんでしたというエラーが表示されます。この問題を解決するのを手伝ってください。私は解決策に完全に行き詰まっています。前もって感謝します。
画像のパスは次のようなものです/storage/emulated/0/myfolder/1433917106851_fact_2.jpg
注: mShareImages はArrayList<Uri>
. を使用して変換ArrayList<String>
していますArrayList<Uri>
最後に、この uri オブジェクトを ArrayList に追加します
android - Android にファイル ピッカーを実装し、選択したファイルを別の場所にコピーする
Android プロジェクトにファイル ピッカーを実装しようとしています。私がこれまでにできたことは次のとおりです。
そして、私の中でonActivityResult()
これはファイルピッカーを開いていますが、それは私が望むものではありません。たとえば、ファイル (.txt) を選択し、それを取得してFile
使用したいとします。このコードを使用すると、完全なパスを取得できると思いましたが、そうではありません。たとえば、次のようになります/document/5318/
。しかし、このパスではファイルを取得できません。PathToFile()
を返すというメソッドを作成しましたFile
:
私がやろうとしているのは、ユーザーがどこからでも a を選択できるようにするFile
ことですDropBox
, Drive
, SDCard
,Mega
など...しかし、それは機能しないので、それ自体を取得する方が良いと思います。次に、これをプログラムで使用して、これまたは.Path
File
Path
File
File
Copy
Delete
EDIT (現在のコード)
じぶんのIntent
そこで何がサポートされているのかわからないので質問なのtext/plain
ですが、調べてみますが、今のところ関係ありません。
私は@Lukas Knuth answeronActivityResult()
と同じものを使用しましたが、それで別の部分にこれができるかどうかはわかりません。彼の答えを待っています。Copy
File
SDcard
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 が知らなかったのは素晴らしいことでした)その関数)、私が呼び出した秒を作成し、これを作成できるに送信します。URI
Intent
File
content_describer.getPath();
TextView
content_describer.getLastPathSegment();
File
destination
AbsolutePath
File
source file
また、送信する必要がある関数を作成しましたdestination file
。これは、以前に作成したもので、これを新しいフォルダーにコピーします。
また、このフォルダーが存在するかどうかを確認する関数を作成しました (存在destination file
しない場合はこのフォルダーを作成し、存在しない場合は何もしません。
皆さんの協力に感謝します。皆さんと一緒に作成したこのコードを楽しんでいただければ幸いです :)
android - 内部ストレージにある画像をトリミング
Android でクロップ インテントの使用に問題があります。
アプリの内部ストレージ割り当てに画像を保存していますが、それらをトリミングして壁紙として設定できるようにしたいと考えています。
次のコードを使用して、外部ストレージに保存されている画像で動作させることができます。
インテントの下のコードを実行すると、クロップ インテントの起動に失敗し、結果コード 0 が返されます。
android - Intent.ACTION_GET_CONTENT で選択された任意のファイルを取得して保存します
次の手順を実行する必要があります。
- ユーザーがファイルを選択できるようにする (任意の種類のファイル)
- 後でファイルにアクセスするための永続的な参照を取得するか、内部ストレージにコピーします。
最初のものは本当に簡単です。Intent.ACTION_GET_CONTENT を使用してファイルを取得する際に問題はありません。ファイルの MimeType も取得できます。しかし、私はコピーすることはできません。
FileInputStreamを使用してコピーしようとしましたが、明らかに許可がありません。誰かが私を助けてくれることを本当に願っています。
権限
インテントコール
ファイルのコピーに失敗しました
エラー:android.system.ErrnoException: open failed: EROFS (Read-only file system)
android - Android: FileProvider IllegalArgumentException /data/data/**/files/Videos/final.mp4 を含む構成済みのルートが見つかりませんでした
プライベートパスからビデオを再生するために使用しようとしていますFileProvider
.Facing
コード:
Java コード:
マニフェスト.xml
これに関する手がかりはありますか?
ありがとうニッツ
android - ファイルプロバイダーを使用してアセットを共有する
https://developer.android.com/training/secure-file-sharing/index.htmlに従い、アプリの内部ディレクトリ (/data/data/package/files/xxx/) 内のファイルをクライアント アプリに共有することができます。ファイルプロバイダー。
(内部ディレクトリではなく) assets フォルダー内のファイルをクライアント アプリに共有する方法。
ありがとう
android - 致命的な例外: Intent への画像共有中の ThumbnailManager-1
FileProvider を使用して画像を共有しているときに、次の例外が発生しました。以下は私が使っていたコードです。
例外のスタックトレースの詳細は以下の通りです。
共有する電子メールを選択すると画像が正しく共有されますが、メッセージを選択すると失敗します。手伝ってください。
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
セキュリティ上の理由から使用するという考え全体が壊れてしまいます。
私の質問は、「何か足りないものはありますか?」です。一部のクライアント アプリの記述が不十分なため、ファイル パスを取得できないためにクラッシュするのは彼らの問題なのでしょうか?