問題タブ [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 - Android の FileProvider は実際に external-files-path をサポートしていますか?
file:/// Uri を別のアプリ (この場合はカメラ) に送信しようとする FileUriExposedException に遭遇しました。代わりに FileProvider を使用する必要があります (api 24 Nougat でクラッシュが発生します)。
このアプリでは、Context のgetExternalFilesDir(String)
メソッドを使用してファイルを生成します。
FileProviderのドキュメントは、機能を現在と同じにしたい場合はexternal-files-path
、自分で使用する必要があると私に信じさせます。paths.xml
しかし、さらにグーグルで調べたところ、FileProvider、または少なくとも FileProvider のドキュメントに問題があると思わせるいくつかのことがわかりました...
- https://code.google.com/p/android/issues/detail?id=61170
- @commonsWare の回答とコメントhttps://stackoverflow.com/a/30276915/921988
- https://github.com/commonsguy/cwac-provider#metadata-elementsのサポートを追加すると述べているこのアクティブなライブラリの README
external-files-dir
- また、私は
java.lang.IllegalArgumentException: Failed to find configured root that contains ...
今取得していますが、それは他の何かが原因である可能性があります.
そう
external-files-path
アプリの現在の動作に合わせたい場合は、使用する必要があると考えるのは正しいですか?- ドキュメント/FileProvider は本当に壊れている/間違っているのでしょうか?代わりにcwac-provider のようなものを使用する必要がありますか?
アップデート
完全を期すために、@CommonsWareが以下で推奨しているように、24.2.0バージョンを使用するとうまくいきsupport-v4
ます。
java - FileProvider - FileNotFoundException が原因でファイルを保存できません: /Download/TempFile.html (No such file or directory)
Android N には FileProvider が必要になったようです。そのため、FileProvider を実装して、ネットワークからローカルの一時的な場所にファイルを保存しようとしています。次に、この一時ファイルを読み取る必要があります。
FileProvider をセットアップするためにこれを行いました。
マニフェスト.xml:
次に、フォルダーに次のprovider_paths.xml
ファイルがあります。res/xml
最後に、これは一時ファイルを作成するために必要な Java コードです。
行はfinal FileWriter writer = new FileWriter(tempFile);
例外をスローしますjava.io.FileNotFoundException: /Download/TempFile.html (No such file or directory)
私が間違っていることについて何か提案はありますか?ありがとうございました!
更新/編集:
ファイルを保存する現在のアプローチでは、ファイルは次の場所に配置されます。
/storage/emulated/0/Download/TempFile.html
これは、次のようにインテントで消費しようとするまでは問題ありません。
これにより、次の例外がスローされます。
android.os.FileUriExposedException:file:///storage/emulated/0/Download/TempFile.html exposed beyond app through Intent.getData()
android - 画像キャプチャでファイルプロバイダが機能しない
私は解決策を見つけるために多くの時間を費やしました。getExternalStoragePublicDirectory() と getExternalFilesDir() などを試しました。しかし、onActivityResult は依然としてエラー resultCode をもたらします。fileProvider から Uri.fromFile() にのみ切り替えると機能します。しかし、Android のマニュアルでは、新しい API には FileProvider を使用することを強く推奨しています。私が間違っていることを教えてください。
マニフェスト フラグメント:
ファイルパス.xml
ジャワ
android - 簡単な「ファイルを保存する」コードの説明
Android アプリについて詳しく知りたい。
そこで、out=context.openFileOutput引数の説明が欲しいです。
どんな助けでも大歓迎です。
android - FileProvider の使用時にインテントを処理するアクティビティが見つかりません
私のアプリには、カスタムの自動ダウンロードとインストール APK があり、このように動作します
Android マニフェスト:
Provider_path (申し訳ありませんが、パス タグを切り捨てます)
external-path name="myfolder" path="."/>
ファイルのダウンロードが完了すると、onComplete が呼び出されますが、アクティビティは開始されません。
インテントを処理するアクティビティが見つかりません { act=android.intent.action.VIEW dat=content://com.myapp/myfolder/myfile.apk typ=application/vnd.android.package-archive flg=0x4000000 }
通常の file:// を使用すると動作します
ファイル プロバイダーを使用する際に不足しているものはありますか? ファイルが見つからないため、アクティビティは開始されませんか? 追加の許可が必要ですか? (現時点では、外部ストレージにインターネット、読み取り、書き込みがあります)
java - Android 7.0 ファイルプロバイダー Uri からの通知音が再生されない
Android 7 をサポートするためにアプリ コードを変更していますが、NotificationCompat.Builder.setSound(Uri) で FileProvider から Uri を渡すと、通知はサウンドを再生しません。Android 6 では、Uri.fromFile() を使用すると正しく機能しました。
mp3 ファイルは次の場所にあります。
/Animeflv/cache/.sounds/
これは私の通知コードです:
knf.animeflv.RequestBackground
これは私の UtilSound.getSoundUri(int) です
AndroidManifest.xml で:
provider_paths.xml: