में बाहरी स्टोरेज पर काम नहीं करता है मेरे पास एक ऐप है जो FileObserver
के साथ बाहरी संग्रहण पर सार्वजनिक निर्देशिका देखता है। यह Lollipop
डिवाइस पर ठीक काम करता है। मैं Marshmallow
के लिए समर्थन जोड़ना चाहता हूं, इसलिए मैंने इसके साथ एक नेक्सस 9 टैबलेट स्थापित किया।FileObserver एंड्रॉइड 6.0 मार्शमलो (एपीआई 23)
मार्शमलो डिवाइस पर, यह विफल रहता है, लॉलीपॉप डिवाइस पर यह ठीक है। मार्शमलो डिवाइस पर, FileObserver
अन्य प्रक्रियाओं के कारण होने वाली फ़ाइल सिस्टम घटनाओं पर प्रतिक्रिया नहीं करता है। जैसे एक स्क्रीनशॉट लेना, adb
खोल के माध्यम से फाइलें बनाना। यदि यह मेरे ऐप द्वारा बनाई गई है तो यह ठीक काम करता है।
Marshmallow
पर, मैं WRITE_EXTERNAL_STORAGE
और READ_EXTERNAL_STORAGE
Manifest.xml
से अनुमतियों के लिए पूछता हूं।
जब मैं एपीआई 23 के साथ संकलित करता हूं, तो मैं यह भी सुनिश्चित करता हूं कि मैं ActivityCompat.requestPermissions()
पर कॉल करता हूं।
जब मैं एपीआई 22 के साथ संकलित करता हूं, तो मैं बस Manifest.xml
पर भरोसा करता हूं।
यह काम करता है अगर मैं /data/data/my-package-name
पर सामान देखता हूं।
अगर मैं /storage/emulated/0/Pictures/Screenshots
पर सामान देखता हूं तो यह विफल हो जाता है।
क्या कोई निम्नलिखित FileObserver
का परीक्षण करता है? :
Marshmallow
डिवाइस- एपीआई 23 और एपीआई 22?
- बाह्य भंडारण
- अवलोकन ऐप की तुलना में किसी अन्य प्रक्रिया द्वारा बनाई गई फ़ाइलें (उदा।
adb
या स्क्रीनशॉट लेना)।
क्या आपने बाहरी संग्रहण पर अन्य स्थानों की कोशिश की है? यह संभव है कि आपकी समस्या उस निर्देशिका तक सीमित है, इसकी कुछ संवेदनशील प्रकृति दी गई है। बीटीडब्ल्यू, जिसे आप संकलित करते हैं, रनटाइम अनुमतियों के संबंध में आपके ऐप के व्यवहार पर कोई असर नहीं पड़ता है; आपका 'targetSdkVersion' करता है। – CommonsWare
कहीं भी FileObserver का संदर्भ रखना सुनिश्चित करें। यदि यह कचरा इकट्ठा किया जाता है, तो यह घटनाओं को प्राप्त करना बंद कर देगा। –
इसके अलावा, एफडब्ल्यूआईडब्लू, [इस बारे में एक मुद्दा दायर किया गया है] (https://code.google.com/p/android-developer-preview/issues/detail?id=3099)। – CommonsWare