2016-09-11 7 views
17

से उपलब्ध एंड्रॉइड निर्देशिका में adb का उपयोग कर फ़ाइल कॉपी करने के लिए कैसे करें यदि आप पीसी पर एंड्रॉइड डिवाइस संलग्न करते हैं तो आप फाइलें और डीआईआर ब्राउज़ कर सकते हैं। Environment.getExternalStorage() का उपयोग करके इस निर्देशिका को प्राप्त करना संभव है। आप इसे अपने आवेदन से उपयोग कर सकते हैं और सुलभ फाइलें और डीआईआर बना सकते हैं। यह बढ़िया काम करता है।पीसी

मेरे डिवाइस पर यह पथ /storage/emulated/0 जैसा दिखता है और यदि मैं इस निर्देशिका में adb push का प्रयास करता हूं तो मुझे पहुंच से वंचित त्रुटि मिल जाएगी। क्या Windows Explorer के समान फ़ोल्डर में adb का उपयोग कर फ़ाइलों की प्रतिलिपि बनाना संभव है?

D:\...\tools>adb push ACCOUNTS.DB /storage/emulated/0 
failed to copy 'ACCOUNTS.DB' to '/storage/emulated/0': Permission denied 
58969 KB/s (606505 bytes in 0.010s) 

मैं स्वचालित आयात/निर्यात को लागू कर रहा हूँ और मैं फ़ाइलों मामले में कुछ भी में adb shell बिना सुलभ गलत जाना होगा होना चाहता हूँ।

वर्तमान में वर्कअराउंड के रूप में परिवर्तनीय $EXTERNAL_STORAGE का उपयोग कर, यह adb और एप्लिकेशन दोनों के लिए काम करता है।

डिवाइस: एसस फोनेपैड 7, एंड्रॉइड 5.0, जीनिमशन कस्टम टैबलेट 6.0 - काम करने की कोशिश की।

+0

'adb push .../storage/emulated/0' मेरे लिए ठीक काम करता है, एंड्रॉइड 5 एक्स एंड्रॉइड 6.0.1 पर चल रहा है। – CommonsWare

+0

यह समस्या है, मुझे इसे * विश्वसनीय * काम करने की आवश्यकता है, लेकिन यह मेरे डिवाइस पर विफल रहता है, एम्यूलेटर के साथ काम करता है। – kemsky

उत्तर

4

/sdcard/ का उपयोग करने का प्रयास करें। हालांकि यह कोड में ऐसा करने के लिए दृढ़ता से निराश है।

$ adb push somefile /storage/emulated/0/somefile 
[100%] /storage/emulated/0/somefile 
adb: error: failed to copy 'somefile' to '/storage/emulated/0/somefile': Read-only file system 

$ adb push somefile /sdcard/somefile 
[100%] /sdcard/somefile 

वैसे, अपने डिवाइस पर वे एक ही मूल्य नहीं है: /storage/emulated/legacy को /storage/emulated/0/ जबकि /sdcard अंक के Environment.getExternalStorage() अंक यह एडीबी साथ एक ही रास्ता हो रहा है।

+0

फ़ाइल को सफलतापूर्वक कॉपी किया गया था (और मैं इसे ES Explorer के साथ सही जगह पर देख सकता हूं), लेकिन यह पीसी से दिखाई नहीं दे रहा है। पुनः कनेक्ट करने का प्रयास किया, इंतजार कर रहा है ... शायद मुझे किसी भी तरह इंडेक्सिंग ट्रिगर की जरूरत है। – kemsky

+1

ठीक है, ऐसा लगता है कि 'MEDIA_SCANNER_SCAN_FILE' प्रसारण इसे ठीक कर सकता है। – kemsky

2

यह बहुत आसान है, आंतरिक भंडारण गैर-रूट उपकरणों पर अनुपलब्ध है। तो जैसा कि bwt answer में उल्लेख किया गया था तुम सिर्फ sdcard के लिए अपने डेटा को पुश करने की जरूरत है:

adb push somefile /sdcard/somefile 

अपने फाइल सिस्टम से फाइल पुन: प्राप्त करने के साथ आप भी कुछ समस्याओं होगा। लेकिन डीबग एप्लिकेशन से डेटाबेस खींचने के मामले में - आपको केवल chmod के माध्यम से फ़ाइल अनुमति बदलने की आवश्यकता होगी। यहां आपके पास एक उपयोगी लिंक है - XDA guys about adb

संबंधित मुद्दे