我尝试使用我的ApplicationContext
和我的电话Service
的Context
来访问外部目录。不幸的是,它不断返回null
,LogCat报告它无法创建外部目录。我确信我有WRITE_STORAGE_PERMISSION
礼物,但它仍然不起作用。我的设备正在运行API 10(2.3.3)vanilla android。有任何想法吗?无法在Android中创建外部文件目录。 WRITE_EXTERNAL_STORAGE存在
这里是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="droid.signboard" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:name="SignboardApp">
<receiver android:name=".ApplicationStarter">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
<action android:name="droid.signboard.LAUNCHER_START"></action>
</intent-filter>
</receiver>
<activity android:label="@string/app_name"
android:screenOrientation="landscape" android:launchMode="singleTop"
android:name=".view.Signboard">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
<service android:name=".controller.MasterControllerService">
<intent-filter>
<action
android:name="droid.signboard.LAUNCH_SERVICE_FROM_ACTIVITY"></action>
</intent-filter>
</service>
</application>
</manifest>
这里的地方的代码弄乱:
private boolean canWriteEx() {
String state = Environment.getExternalStorageState();
if (state.equals (Environment.MEDIA_MOUNTED)) {
Log.i (TAG, "Can write to external directory: "
+ context.getExternalFilesDir (null).getAbsolutePath());
return true;
} else {
Log.i (TAG, "Cannot write to external directory: "
+ context.getExternalFilesDir (null).getAbsolutePath());
return false;
}
}
的代码是一个Runnable
的方法,由一个名为Service
。 Runnable
的构造函数以Context
作为参数。这是代码使用的Context
。该代码在日志调用中抛出异常,该日志调用成功,意味着外部存储器存在且可用。
最新通报尝试的修复:
一个干净的安装不起作用。
恢复到API 9不起作用,尽管它早期工作。
发布您的androidmanifest.xml文件。 – Otra
发布您的代码和任何相关的堆栈跟踪。没有它,我们所能做的就是在黑暗中猜测镜头。 – FoamyGuy
你想做什么?你为什么调用context.getExternalFilesDir(null)?告诉我们的目的,我们可能会更好地瞄准你。而且,你的logcat中的堆栈跟踪会很有帮助。 – IncrediApp