8

Android'de bir görüntü düzenleyicisi yazıyorum. Şimdiye kadar tek bir etkinliği var. Bu aktiviteden, Galeri etkinliğini çağıran bir menü seçeneğini kullanarak bir resim yükleyebilirim ve onActivityResult Alınan görüntüyü tuvalimi boyamak için işleme koyarım, böylece düzenleyebilirim. Bu iyi çalışıyor.Niyet filtresi: intent.getData() null döndürür

Şimdi yapmak istediğim, bu etkinliğin başka bir yerden kalınabilir olmasını sağlamaktır. Bu nedenle, etkinlik içinden bir resim seçmek zorunda kalmadan Galeri'yi açabilirim, bir fotoğraf seçip uygulamamıza gönderebilirim . Ama nasıl olduğunu anlayamıyorum.

benim manifest'ten On

, ben <activity> etiketlerinin içinde aşağıdaki koyduk: http://developer.android.com/training/basics/intents/filters.html belirtildiği gibi, benim aktivitede,

<intent-filter> 
    <action android:name="android.intent.action.SEND" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="image/*" /> 
</intent-filter> 

Sonra ben onCreate() içine aşağıdaki koyduk:

... 
//after initializing my view and stuff 

Intent intent =getIntent(); 
Uri image = intent.getData(); 

//code to do something with my uri 
... 

Uygulamayı telefonuma yükledikten sonra Galeri'yi açtığımda, bir resim seçip "gönder" menüsünü kullanarak ve uygulama listemde görünebilir ancak uygulamayı seçtiğinizde uygulamayı açabilirim ancak görüntüyü yok sayar. intent.getData()'dan aldığım uri'nin null olduğu ve nedenini anlayamadığım ortaya çıkıyor.

Yanlış bir şey yapıyorum? Bir şey unutuyor muyum? Eğer bilmeniz gerekiyorsa, onunla birlikte sağlanan CoolIris galerisini kullanarak Android 2.3 stoktayım.

cevap

22

İstediğiniz Uri pakette. Ben kodunun altına çalıştık ve bu tam olarak ne gerekli olduğunu ACTION_SEND

+0

görebilirsiniz böyle content://media/external/images/media/1750

Intent intent = getIntent(); Bundle bundle = intent.getExtras(); Uri uri = (Uri)bundle.get(Intent.EXTRA_STREAM); 

Daha bilgisi olarak görüntünün Uri alabilirsiniz. Teşekkür ederim! Yani, Google'ın belgeleri yanlış mı yoksa bir şeyi yanlış mı okudum? – ziritrion

+0

ACTION_SEND belgesine bakın, odaklanmanız gereken 'girişi' açıklayın. – dreamtale