【问题标题】:FileProvider for specific file path in honor device荣誉设备中特定文件路径的 FileProvider
【发布时间】:2021-08-26 13:42:51
【问题描述】:

我无法找到以下文件的 Uri。我正在使用荣耀设备

文件路径/data/hw_init/product/region_comm/oversea/media/Pre-loaded/Music/Magic_Mullet.mp3

<provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="com.abc.xyz.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
</provider>


fun getFileUri(context: Context?, file: File): Uri? {
        var uri: Uri? = null
        try {
            if (context != null) {
                uri = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    FileProvider.getUriForFile(context, "com.abc.xyz.provider", file)
                } else {
                    Uri.fromFile(file)
                }
            }
        } catch (ex: java.lang.IllegalArgumentException) {
            uri = null
        }
        return uri
}

我可以获取 Uri 的内部存储路径,但是如何获取以 /data/hw_init 开头的文件路径?

【问题讨论】:

    标签: android uri filepath android-fileprovider


    【解决方案1】:

    FileProvider 不支持从任意位置(例如那个位置)提供文件。您需要创建自己的 ContentProvider,其工作方式有点像 FileProvider,您可以从所需位置提供文件。

    【讨论】:

    • 好的。你能给我推荐任何相同的参考吗?
    • @Nik: This sample is old 但演示了基本技术。就我而言,该文件恰好位于getFilesDir(),但这不是必需的。 this free edition of one of my books 中涵盖了该示例。
    • 好的,让我检查一下。
    猜你喜欢
    • 1970-01-01
    • 2022-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多