2013-01-03 12 views
5

Cihazımın SD kartında bir görüntü göstermesini söylemek için adb shell kullanmak istiyorum. Bu komut işe yarayacağını düşündü: Yerel bir görüntüyü görüntülemek için adb kabuğunu kullanma

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

Ne yazık ki bu hatayı alıyorum:

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.

Ben de bir VIEW eylemi yapıyor ve sadece -n veya -d parametreleri ile çalışırken çalıştı. dosya üzerinde

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 }

izinler şunlardır: (": // dosya" yolundaki öneki ben olduğu ve olmadığı her ikisi denedim) Bu hata sadece -d parametre sonuçlarını kullanma

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

:

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

Köklü bir Galaxy Nexus çalıştıran 4.1.1 sürümünü test ediyorum.

Güncelleştirme: dtmilano'nun önerisini denedim ancak Kırpma aracı "Görüntünün yüklenemedi" penceresini açar. LogCat gelen Yığın izleme:

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 

Bu yüzden diğer uygulamaların erişemez, bir dahili SD kart ve belki görüntüler uygulama verileri olarak ele ediliyor merak değilim?

+0

"VIEW" ile çalışmalı ve '-n com.android.browser/.BrowserActivity' işlevini bırakmalıdır. Sistem daha sonra doğru sınıf için niyetini çözmelidir. – iagreen

+0

Bu benim için işe yaramadı, ben gördüğümü hata ile sorunu güncelledik. –

+0

Bir dosya yöneticisi uygulaması kurun ve buna göz atmayı ve görüntülemeyi deneyin - izin sorusunu yanıtlamalısınız. Belki de dosya erişilebilir, ancak bu yol adı * uygulamamak için kullanıcı adı *. –

cevap

6

Bu çalışması gerekir ancak yüklediğiniz uygulamalar bağımlı bulunuyor:

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

İlginçtir, bu ... kullanarak Komple eylem Galeri seçerseniz çalışır ancak seçerseniz çalışır gelmez Resmi kırp. Ayrıca Astro Image Viewer ile çalışır.

+0

veya -t "image/*" kullanın. – iagreen

+0

"Tamamla eylemi kullanarak ..." açılır penceresini görmeye kadar gidebilirim, ancak her zaman "Resmi yükleyemedi" yazıyor. Belki de sorun benim yol formatımdır (çok denedim) veya bu bir dahili SD kartsa, belki de izinler dosyaya erişen diğer uygulamaları durdurabilir. –

+0

Sdcard'ın kök dizinine bir görüntü dosyası ekleyerek başlayın ve çalıştığını doğrulayın. Sonra diğer yere git. –

2

benim gereksinimi için ben en hızlı çözüm sadece benim yerel makinede cihazın kapalı dosyayı çekin ve test etmektir:

adb pull /storage/sdcard0/Android/data/<mypackage>/files/myfile.jpg ~/Downloads 
İlgili konular