2013-01-03 13 views
5

मैं अपने डिवाइस को अपने एसडी कार्ड पर एक छवि प्रदर्शित करने के लिए adb shell का उपयोग करना चाहता हूं। मैंने सोचा था कि इस आदेश का काम करेगा:स्थानीय छवि को प्रदर्शित करने के लिए एडीबी खोल का उपयोग कैसे करें

adb shell am start -a android.intent.action.MAIN -n com.android.browser/.BrowserActivity -d file:///storage/sdcard0/Android/data/<mypackage>/files/myfile.jpg 

दुर्भाग्य से मैं इस त्रुटि मिलती है:

Starting: Intent { act=android.intent.action.MAIN cmp=com.android.browser/.BrowserActivity }
Error type 3
Error: Activity class {com.android.browser/com.android.browser.BrowserActivity} does not exist.

मैं भी एक VIEW कार्रवाई कर रही है की कोशिश की है, और केवल -n या -d मानकों के साथ की कोशिश कर रहा।

adb shell am start -a android.intent.action.VIEW -d file:///storage/sdcard0/Android/data/<mypackage>/files/myfile.jpg 

ऐसा गलती से हुआ केवल -d पैरामीटर परिणामों का उपयोग करना (मैं दोनों के साथ और बिना की कोशिश की "फ़ाइल: //" पथ पर उपसर्ग):

Starting: Intent { act=android.intent.action.VIEW dat=/storage/sdcard0/Android/data//files/myfile.jpg }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=/storage/sdcard0/Android/data//files/myfile.jpg flg=0x10000000 }

फ़ाइल पर अनुमतियों हैं:

-rw-rw-r-- root  sdcard_rw 198106 2013-01-02 21:29 gUD9w5.jpg 

मैं एक जड़ें गैलेक्सी नेक्सस चल 4.1.1 के साथ परीक्षण कर रहा हूँ।

अद्यतन: मैंने डीटीएमलानो के सुझाव की कोशिश की लेकिन फसल टूल "छवि लोड नहीं कर सका" पॉपअप देता है। logcat से स्टैक ट्रेस है:

ActivityManager: START {dat=file:///storage/sdcard0/Android/data/<mypackage>/Pictures/myfile.jpg typ=image/* 
    flg=0x13000000 cmp=com.google.android.gallery3d/com.android.gallery3d.app.CropImage u=0} from pid 301 
UriImage: fail to open: file:///storage/sdcard0/Android/data/<mypackage>/Pictures/myfile.jpg 
UriImage: java.io.FileNotFoundException: /storage/sdcard0/Android/data/<mypackage>/Pictures/myfile.jpg: 
    open failed: ENOENT (No such file or directory) 
UriImage: at libcore.io.IoBridge.open(IoBridge.java:416) 
UriImage: at java.io.FileInputStream.<init>(FileInputStream.java:78) 
UriImage: at java.io.FileInputStream.<init>(FileInputStream.java:105) 
UriImage: at android.content.ContentResolver.openInputStream(ContentResolver.java:445) 
UriImage: at com.android.gallery3d.data.UriImage.openOrDownloadInner(UriImage.java:98) 
UriImage: at com.android.gallery3d.data.UriImage.openFileOrDownloadTempFile(UriImage.java:78) 
UriImage: at com.android.gallery3d.data.UriImage.prepareInputFile(UriImage.java:164) 
UriImage: at com.android.gallery3d.data.UriImage.access$100(UriImage.java:40) 
UriImage: at com.android.gallery3d.data.UriImage$RegionDecoderJob.run(UriImage.java:170) 
UriImage: at com.android.gallery3d.data.UriImage$RegionDecoderJob.run(UriImage.java:168) 
UriImage: at com.android.gallery3d.app.CropImage$LoadDataTask.run(CropImage.java:921) 
UriImage: at com.android.gallery3d.app.CropImage$LoadDataTask.run(CropImage.java:913) 
UriImage: at com.android.gallery3d.util.ThreadPool$Worker.run(ThreadPool.java:124) 
UriImage: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
UriImage: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
UriImage: at java.lang.Thread.run(Thread.java:856) 
UriImage: at com.android.gallery3d.util.PriorityThreadFactory$1.run(PriorityThreadFactory.java:43) 
UriImage: Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) 
UriImage: at libcore.io.Posix.open(Native Method) 
UriImage: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) 
UriImage: at libcore.io.IoBridge.open(IoBridge.java:400) 
UriImage: ... 16 more 

मैं सोच अगर यह एक आंतरिक एसडी कार्ड है, और शायद छवियों आवेदन डेटा के रूप में इलाज किया जा रहा है, तो अन्य एप्लिकेशन पर नहीं पहुंच सकता हूँ?

+0

इसे 'VIEW' के साथ काम करना चाहिए और' -n com.android.browser/.BrowserActivity' को छोड़ना चाहिए। सिस्टम को सही वर्ग के इरादे को हल करना चाहिए। – iagreen

+0

यह मेरे लिए काम नहीं करता प्रतीत होता है, मैंने जिस त्रुटि को देखा है, उसके साथ मैंने प्रश्न को अद्यतन किया है। –

+0

एक फ़ाइल प्रबंधक ऐप इंस्टॉल करें और उसे ब्राउज़ करने और उसे देखने का प्रयास करें - अनुमति प्रश्न का उत्तर देना चाहिए। हो सकता है कि फ़ाइल सुलभ हो, लेकिन उस पथ नाम से नहीं * ऐप उपयोगकर्ता आईडी के लिए *। –

उत्तर

6

यह काम करना चाहिए लेकिन यह क्षुधा स्थापित किए गए पर निर्भर है:

$ adb shell am start -t image/* -d file:///mnt/sdcard/myfile.jpg 

दिलचस्प है, यह अगर आप क्रिया पूर्ण करें में गैलरी चयन का उपयोग कर ... काम नहीं करता है, लेकिन काम करता है अगर आप चयन फसल चित्रएस्ट्रो छवि व्यूअर के साथ भी काम करता है।

+0

या उपयोग कोड "छवि/*" के बाद से पोस्ट कोड jpg है। – iagreen

+0

मैं "पूर्ण क्रिया का उपयोग कर ..." पॉपअप को देखकर प्राप्त कर सकता हूं, लेकिन यह हमेशा "छवि लोड नहीं कर सका" कहता है। शायद यह मुद्दा मेरा पथ प्रारूप है (मैंने बहुत कोशिश की है), या यदि यह एक आंतरिक एसडी कार्ड है, तो शायद अनुमतियां फ़ाइल तक पहुंचने वाले अन्य ऐप्स को रोक रही हैं। –

+0

एसडीकार्ड की मूल निर्देशिका में एक छवि फ़ाइल जोड़कर प्रारंभ करें और यह कार्य सत्यापित करें। फिर दूसरे स्थान के लिए जाओ। –

2

तेज वैकल्पिक हल मेरी आवश्यकता के लिए मेरे पास है बस अपना स्थानीय मशीन पर उपकरण बंद फ़ाइल निकालें और उसे परीक्षण करने के लिए है:

adb pull /storage/sdcard0/Android/data/<mypackage>/files/myfile.jpg ~/Downloads 
संबंधित मुद्दे