2

我正在尝试实现文件选择器。我在我的应用程序中使用Android File Explore作为文件选择器。当我运行该应用程序时,它会向我显示内部存储并返回文件路径,但它根本不显示外部存储。在文件选取器中访问外部存储器

这是我的AndroidManifest.xml文件。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.unicloud.mittal" > 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
    <uses-permission android:name="android.permission.MANAGE_DOCUMENTS" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:logo="@drawable/ic_launcher" 
     android:theme="@style/AppTheme" > 
     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" /> 

     <activity 
      android:name=".Splash" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".loginWithGooglePlus" 
      android:label="@string/app_name" 
      android:logo="@drawable/ic_launcher" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".FileExplore" 
      android:label="Pick a file" 
      android:permission="android.permission.MANAGE_DOCUMENTS" > 
      <intent-filter> 
       <action android:name="android.content.action.DOCUMENTS_PROVIDER" /> 
      </intent-filter> 

     </activity> 
    </application> 

</manifest> 

我在哪里做错了?

+0

添加您的Java代码以及?您正在使用哪个API来获取外部存储? – VicJordan 2015-03-31 08:12:33

+0

链接到我的java文件是在问题的第一行,我使用的是API 21 ... – user2798227 2015-03-31 11:42:02

回答

3

在上面的github链接中,您使用的Environment.getExternalStorageDirectory() API正在按预期工作。我想你误解了这个API的使用。该API将始终返回主外部存储目录。以下说明可能对您有所帮助:

首先,内部存储,外部存储(又名主外部存储)和辅助外部存储之间有什么区别?

内部存储:是用户无法访问的存储,除非是通过安装的应用程序(或通过为其设备生根)。例如:数据/数据/ app_packageName

主要外部存储:内置共享存储,这是“由在插入USB电缆和安装它作为一个主计算机上的驱动器的用户可访问的”。例如:当我们说Nexus 5 32 GB时。

辅助外部存储:可移动存储。例如:SD卡。

下一个问题。如何访问Lollipop中的SD卡? 要访问SD卡Android在KitKat中引入了新的Storage Access Framework

这里有一个答案很好地解释它:https://stackoverflow.com/a/26765884/631803

+0

我的min sdk是4.0.3,我的编译和目标sdk是5.0。因此,如果我使用KitKat的这种存储访问框架方法,它是否可以在所有使用Android 4.0.3+的设备上工作? – user2798227 2015-04-02 14:04:29

+0

不可以。它只适用于软件版本> = KitKat的设备 – VicJordan 2015-04-03 00:53:01

相关问题