से अधिक एसडी कार्ड के एंड्रॉइड निम्न-स्तरीय पढ़ने के लिए मेरा एंड्रॉइड एप्लिकेशन वास्तविक डिवाइस (मेरे मामले में,/dev/block/vold/179: 1) तक पहुंचकर एसडी कार्ड के भौतिक क्षेत्रों को पढ़ने का प्रयास करता है। (यह निश्चित रूप से एक रूट फोन पर है)2 जीबी
मैं डिवाइस को FileInputStream
के रूप में खोलने में सक्षम हूं, और इससे डेटा पढ़ता हूं। हालांकि, मैं इसे 2 जीबी अंक से पहले नहीं पढ़ सकता (मेरा मेमोरी कार्ड 16 जीबी है)।
ऐसा इसलिए है क्योंकि एंड्रॉइड 2 जीबी से अधिक फ़ाइलों का समर्थन नहीं करता है? यदि ऐसा है, तो position()
और skip()
जैसे फ़ंक्शन long
तर्क क्यों स्वीकार करते हैं ??
क्या किसी को सलाह है कि पिछले 2 जीबी डिवाइस से कैसे पढ़ा जाए?
ऐसा लगता है कि यह व्यवहार केवल 3.0 से पहले एंड्रॉइड में होता है। मैंने टैबलेट (3.1) पर अपना एप्लिकेशन चलाने की कोशिश की, और यह वास्तव में 2 जीबी से परे एसडी कार्ड (साथ ही साथ आंतरिक मेमोरी) पढ़ सकता है ... –
यह सही है, 2 जीबी पर हनीकॉम सीमा से पहले कुछ भी है क्योंकि I/o संचालन का उपयोग lseek64 के बजाय lseek। आप http://code.google.com/p/android/issues/detail?id=21696 पर समस्या देख सकते हैं। – Matt