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>