toulike 2025-02-18 10:11 采纳率: 0%
浏览 69

android 14 存储权限报错

android14 存储权限报错
通过定位报错出现在这里,在网上找了很多办法,添加各种权限都不行

img

img

  • 写回答

6条回答 默认 最新

  • 阿里嘎多学长 2025-02-18 10:12
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    Android 14 存储权限报错解决方案

    你遇到的问题可能是 Android 14 中的存储权限变化导致的。从 Android 11 开始,Android 系统对存储权限进行了修改,需要在 AndroidManifest.xml 文件中添加 requestLegacyExternalStorage 属性,并将其设置为 true

    例如:

    <manifest ...>
        <application ...>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
            <application
                ...
                android:requestLegacyExternalStorage="true">
                ...
            </application>
        </application>
    </manifest>
    

    此外,你也可以使用 StorageManager 类来请求存储权限,例如:

    StorageManager storageManager = (StorageManager) getSystemService(Context.STORAGE_SERVICE);
    storageManager.requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
    

    如果你使用的是单元测试,可以使用 InstrumentationRegistry 来请求存储权限,例如:

    InstrumentationRegistry.getInstrumentation().getTargetContext().grantPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
    

    如果你已经添加了这些权限,但仍然报错,可以尝试在 AndroidManifest.xml 文件中添加 android:exported 属性,并将其设置为 false,例如:

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

    这些解决方案可以帮助你解决 Android 14 中的存储权限报错问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月18日