外部存储存在挂载状态和正确权限的问题



在三星Galaxy Mini (Android 2.3)上,我无法通过Eclipse安装100+ MB的APK(总是出现一些错误,没有什么真正的帮助;通常它说insufficient_storage,即使有300+ MB的可用空间在外部存储(即在这种情况下在SD卡上,并且安装位置设置为PREFER_EXTERNAL)。

所以我通过USB连接将APK复制到SD卡上,然后从PC上卸载USB。然后用文件管理器打开APK,并安装它。在安装之前,它不显示 WRITE_EXTERNAL_STORAGE要批准的权限(可能这就是问题所在?)

当我运行它时,当试图写入外部存储中的文件夹(getExternalFilesDir(null))时,我得到以下错误:

"无法创建外部文件目录"

在logcat中显示两次。

我使用Environment.getExternalStorageState()做任何事情之前,它返回MEDIA_MOUNTED正确。它被记录在logcat中,与出现"无法创建…"日志的位置相同。重新启动手机没有帮助,与PC切换USB连接也没有(这些在其他stackoverflow主题中提到)。

我的Android清单的开头如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    package="com.example.apps.iik"
    android:versionCode="1"
    android:versionName="1.0.0" >
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <uses-feature android:name="android.hardware.screen.landscape" />

APK安装不显示write_external_storage权限是否正常?也许应用程序是在没有这个许可的情况下安装的?但据我注意到,在其他设备上,它根本不能将外部存储识别为"已挂载"。

在Android 2.3中,许多oem已经为低存储设置了自己的阈值(如果APK大小*4>可用存储,Moto设备将不允许您从商店安装)

如果你通过一些文件管理器或应用程序安装程序安装,它可能不会显示任何权限。但是你总是可以通过进入设置>应用程序,点击你的应用程序来查看权限。

同样,在写入文件之前,首先通过file.createNewFile()创建它。

最新更新