問題タブ [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 投票する
1 に答える
1525 参照

android - FileProvider を使用してインテント経由で複数の URI を提供するアクセス許可を付与する方法

あるアプリから別のアプリへIntentの助けを借りて、複数の URI を提供しようとしています。FileProvider

次のようなURIを1つだけ送信すると、機能しました。

私の「受信」アプリでは、次のように続けることができますonActivityResult

ArrayList今、私は URI の送信を試みました:

しかし、付与されたアクセス許可フラグは で設定された URI にのみ適用されるためsetData()、受信アプリで ArrayList から URI にアクセスできません。解決策としてClipDataについて読みましたが、残念ながらMin SDK 15を使用せざるを得ません。

私の質問は、次のようなものを使用して、受信アプリで手動でアクセス許可を設定することをお勧めしますか?

「ArrayList」オプションを選択し、後でそれを取り消すと取得するすべてのURIについて?私はこれを行うことができますか?他のすべてのアプリも同様に、プロバイダー アプリのプライベート ファイルにアクセスできませんでしたか?

ここでどのパッケージを指定する必要がありますか? プロバイダー アプリまたはレシーバー アプリ パッケージ。

ヘルプやヒントをいただければ幸いです

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

android - URI を Notification に渡す Android FileProvider の問題

Android FileProvider に奇妙な問題があります。Retrofit 2 でファイルをダウンロードし、InternalStorage (セキュリティ上の理由) を書き留めてから、このファイルの URI を作成して Intent に渡します。このインテントから、通知に渡される PendingIntent を作成しています。目標は、通知をクリックしてファイルを開くことです。ここまでは順調ですね。

問題は、以下にリストされているコードで数回試行すると、SecurityException が発生したことです。現在、logcat ではエラーと例外は表示されませんが、ファイルが空のようです (ファイルは正しくダウンロードされています - 同じ方法で外部パブリック ディレクトリに書き込んで確認しました)。これは pdf ファイルで、私のビューはビューアーと黒いコンテンツのファイル名のみです。

uri を作成してインテントを渡すための私のコード:

マニフェスト:

ファイルパス:

通知:

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

android - whatsappファイルプロバイダーからtxtファイルを取得する方法

whatsappチャットtxtファイルを取得しようとしています。Androidのドキュメントで見たように:

ウリは次のとおりです。

しかし、ファイルがそのパスに存在しないため、fファイルを使用できません。

私はすでにマニフェストで許可を開いています:

ファイルを使用するにはどうすればよいですか?

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

android - PackageManager#installPackage が Android N で機能しない

ビルド ツール バージョン 24 と N イメージ (npd56n) を含む Android デバイスを使用すると、PackageManager#installPackage を使用してパッケージをインストールできません。

スキーム付きの URI がfile:メソッドに渡されると、-3 が返されますが、これはINSTALL_FAILED_INVALID_URIであると想定しています。

FileProvider (content:スキーム) で作成された URI がメソッドに渡されると、例外がスローされます。

何か案は?

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

android - FileProvider エラー

https://developer.android.com/training/camera/photobasics.html

私がやろうとしているのは、カメラで写真を撮り、保存して ImageView に表示することだけです。

上記の Android チュートリアルに従いましたが、次の行でエラー (NullPointerException) が発生し続けます。

アプリのマニフェストでFileProviderを構成する必要があり、「権限」が一致する必要があることはわかっています。当局の主張に何を入れるべきかよくわかりません。ファイル res/xml/file_paths.xml を含むすべてのコードをチュートリアルからコピーしました。必要に応じて質問してください。

ありがとう!

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

android - FileProvider を使用した Android の写真撮影

FileProviderを使用してAndroid Nougatで写真を撮っています。それが私のコードです

file_paths.xml:

ジャワ:

カメラ アクティビティが開始され、写真が正常に撮影されますが、アクティビティの結果が正常ではなく、エラー ログに表示されるのは次の 1 つだけです。

CAM_StateSavePic: 結果を URI に保存中の例外: Optional.of(content://com.mypackage.fileprovider/img/cameraOutput1469383289530.jpg) FileNotFoundException: ディレクトリです

EDIT 逃した File#createNewFile();

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

android - FileProvider 共有データ - クライアント チェック uri パーミッション

ここで同様の質問が何度か寄せられていることは承知していますが、回避策を探しています。

「共有」機能を検討しています。Google フォトなどのアプリは、受信アプリ コンポーネント (つまり、共有受信者として登録されている起動されたアクティビティ) の uri パーミッションを付与します。私の「共有レシーバー」はデータをディスクに保存する必要があるため、バックグラウンドで保存を処理するサービスに uri を渡します。ただし、ここが厄介なところです。最初にアクセス許可が付与されたアクティビティが終了するか、フォアグラウンドにない場合、uri アクセス許可は取り消され、サービスはデータにアクセスしようとするとセキュリティ例外をスローします。

私の標準的なアプローチは、まだ回避策を見つけていないため、アクティビティを存続させることです。ただし、すべてのファイルに対してアクティビティを存続させる必要がないため、これが必要かどうかを確認するためのインジケーター (私の経験からの「悪い」プロバイダーのリスト以外) はありません。

TLDR: そう: どちらかにする方法はありますか?

  • a) URI 許可をバックグラウンド サービスに「転送」して、Activity-Stay-Alive の回避策を回避します。
  • またはb)現在のコンテキストに権限があるかどうか/どのコンポーネントにアクセスする権限があるか/生き続ける必要があるかなどを確認します.

前もって感謝します!

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

android - Android アプリのディレクトリ構造、内部ストレージからのメール ファイル

私は問題があります。現在、内部ストレージ /data/user/0/com.thatapp.myApp/files/JP_31072016065930.pdf に pdf ファイルを保存しています。

アプリ経由で読むのは問題ないので、確かにあると思います。私は今、電子メールでファイルを送信しようとしています。ここにある他の質問と回答から、ファイル プロバイダーを使用する必要があることが分かります。

だから私は私のマニフェストに以下を追加しました

@xml/filepath を含む

私のメール送信機能は以下の通りです

ファイルは /data/user/0/com.thatapp.contract/files/OTP_JP_31072016065930.pdf としてログに記録します

コードを実行すると、例外が発生します

したがって、 /data/user/0/ == /data/data/ を理解している場合、問題の原因は何ですか? ファイルパスが間違っていますか? ファイルパスのパスとして「files /」も試しましたが、同じ問題があります。助けてください....すでに24時間問題を見つめています