मैं अपने ApplicationContext
और दोनों उपयोग करने की कोशिश मौजूद है मेरी Service
के Context
बाहरी निर्देशिका का उपयोग करने की मांग की। दुर्भाग्यवश, यह null
लौटाता रहता है, और लॉगकैट रिपोर्ट करता है कि यह बाहरी निर्देशिका बनाने में असमर्थ था। मुझे यकीन है कि मेरे पास WRITE_STORAGE_PERMISSION
मौजूद है, लेकिन यह अभी भी काम नहीं करेगा। मेरा डिवाइस एपीआई 10 (2.3.3) वेनिला एंड्रॉइड चला रहा है। कोई विचार?Android में बाहरी फ़ाइलें Dir नहीं बना सकते हैं। 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
है। कोड फेंकता लॉग पर एक अपवाद फोन कि सफल होता है, जिसका अर्थ है कि बाहरी मेमोरी मौजूद और उपलब्ध है।
का प्रयास सुधारों की अद्यतन:
एक साफ स्थापित काम नहीं करता।
एपीआई 9 पर वापस लौटना काम नहीं करता है, हालांकि यह पहले काम करता था।
पोस्ट अपनी AndroidManifest.xml फ़ाइल। – Otra
अपना कोड, और कोई भी प्रासंगिक स्टैक निशान पोस्ट करें। इसके बिना हम अंधेरे में शॉट्स अनुमान लगा सकते हैं। – FoamyGuy
आप क्या करने की कोशिश कर रहे हैं? आप संदर्भ क्यों बुला रहे हैं .getExternalFilesDir (शून्य)? हमें उद्देश्य बताएं और हम आपको बेहतर लक्ष्य बना सकते हैं। इसके अलावा, आपके लॉगकैट से स्टैक ट्रेस उपयोगी होगा। – IncrediApp