Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 来自外部存储的Android文件选择器不在API级别工作>;24_Java_Android_Android Studio_Android Contentprovider_Android Camera Intent - Fatal编程技术网

Java 来自外部存储的Android文件选择器不在API级别工作>;24

Java 来自外部存储的Android文件选择器不在API级别工作>;24,java,android,android-studio,android-contentprovider,android-camera-intent,Java,Android,Android Studio,Android Contentprovider,Android Camera Intent,我从文件管理器中运行了choose文件的代码,它在API级别23上运行良好,但之后它在最新设备上出现问题。现在通过谷歌,我知道要在最新的设备上使用它,我需要使用内容提供商,我应用了一些代码,但它不起作用。我只需要所选文件的路径,文件将是音频文件 舱单: <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name"

我从
文件管理器
中运行了choose
文件
的代码,它在
API级别23
上运行良好,但之后它在最新设备上出现问题。现在通过谷歌,我知道要在最新的设备上使用它,我需要使用内容提供商,我应用了一些代码,但它不起作用。我只需要
所选文件的路径,文件将是音频文件

舱单:

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.example.contentproviderfilechoose"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>
</application>

请在AndroidManifist.xml文件中添加读取外部存储权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.example.contentproviderfilechoose"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>

这里可能会出现错误 android:authorities=“您的软件包名称。contentproviderfilechoose”



错误是什么?无法获取所选文件的路径您不需要任何权限即可使用操作\u获取\u内容。所以请修改代码。进一步删除您授予读取权限的标志,因为您不能在那里进行任何操作。此外,您将在活动结果中收到一个不错的内容uri。使用它,而不是试图从中创建文件路径。(您没有显示任何代码…为什么要抱怨?)。目前还不清楚您需要什么内容提供商。或者你真正想要的。这里android:authorities=“您的\u包\u名称。contentproviderfilechoose”
<provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="com.example.contentproviderfilechoose"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>