zoukankan      html  css  js  c++  java
  • 为安卓项目添加FileProvider

    简单记录

    android7.0开始出现FileProvider。从一个小白角度看需要注意这几点:

    • Manifest.xml中添加provider节点
    • 添加xml文件
    • 模块的build.gradle中添加com.android.support包的支持
    • 确保provider节点中的authorities的值和content uri的基础域名一致

    具体细节

    以SNPE1.25的android程序为例。

    最新的Android Studio似乎不能用 android sdk 26,也就意味着必须用FileProvider了。需要在Manifest.xml中的application节点内,添加一段:

            <provider
                android:name="android.support.v4.content.FileProvider"
                android:authorities="snpe"
                android:enabled="true"
                android:exported="false"
                android:grantUriPermissions="true">
                <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/provider_paths" />
            </provider>
    
    

    其中,@xml/provider_paths是需要添加的xml文件,需要在src/main/res下的xml目录(如果没有则新建)新建provider_paths.xml文件,内容:

    <?xml version="1.0" encoding="utf-8"?>
    <paths>
        <external-path
            name="external_files"
            path="./" />
    </paths>
    

    app模块的build.gradle中,最后一段,确保包含如下:

    
    dependencies {
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        implementation 'com.android.support:recyclerview-v7:27.1.1'
        implementation 'com.android.support:exifinterface:27.1.1'
        implementation 'com.android.support:support-v4:27.1.1'
    
        implementation(name: 'snpe-release', ext:'aar')
        testImplementation 'junit:junit:4.12'
    }
    

    从snpe的java代码,确保provider节点中的authorities的值和content uri的基础域名一致。生成的uri将以content://com.example.myapp.fileprovider作为开头。

    这里我从Model.java看到:public static final Uri MODELS_URI = Uri.parse("content://snpe/models");,因此Manifest.xml中设定 android:authorities="snpe"

    参考

    Android爬坑之旅之FileProvider(Failed to find configured root that contains)

  • 相关阅读:
    inf的设置【知识】
    输入加速【模板】
    floyed算法【最短路】【模板】
    vector的erase函数使用
    欧拉图
    组合索引
    索引的存储
    索引失效
    装饰器和代理模式
    单例模式
  • 原文地址:https://www.cnblogs.com/zjutzz/p/10901527.html
Copyright © 2011-2022 走看看