2012-04-03 7 views
1

Zunächst ist dies NICHT das häufig gestellte Problem, bei dem der Ergebniscode vorzeitig zurückgegeben wird. In diesem Fall wird es erst zurückgegeben, nachdem ein Artikel in der Galerie ausgewählt wurde.Android Gallery gibt RESULT_CANCELED immer an onActivityResult zurück

In meinem Testfall nenne ich die Galerie mit diesem Code:

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(intent, SELECT_PICTURE); 

und in onActivityResult gibt es:

if (resultCode == Activity.RESULT_OK) { 
    if (requestCode == SELECT_PICTURE) { 
     Uri selectedImageUri = data.getData(); 
     pathText.setText(selectedImageUri.getPath()); 
    } 
} else { 
    pathText.setText("Result not OK - code is " + resultCode); 
} 

pathText ist nur ein Textview ich das Ergebnis zu zeigen, setzte in in der Testfall. In der tatsächlichen Anwendung gibt es eine andere Verwendung für den Pfad.

Wenn ich ACTION_PICK anstelle von _GET_CONTENT verwende, bekomme ich den unmittelbaren Fehler von anderen gemeldet. Es gibt keine launchMode-Tags im Manifest (einige Beiträge haben Probleme in diesem Bereich vorgeschlagen).

Vielleicht gibt es hier einen Hinweis. Bei einem Toshiba Thrive wird dieser Fehler nicht angezeigt, wenn Sie Galerie, Datei-Manager oder Fish Bowl-Fotogalerie verwenden. Auf Kindle Fire kann Quickoffice auch einen Bildpfad korrekt zurückgeben. Der Fehler erscheint nur für mich in der integrierten Galerie des Kindle. Der Fehler wurde auch bei einem "Motorola Droid (2.3.4), HTC EVO (2.3)" beobachtet.

Wie kann ich einen Bildpfad von der Galerie zurückholen, der auf allen diesen Geräten funktioniert?

+0

Scheint wie es ist ein Bug in Kindle Fire. Vielleicht ein Duplikat von http://stackoverflow.com/questions/9951006/android-image-picker-doesnt-work-on-kindle-fire/9951054#9951054 –

+0

Ich denke, Sie müssen recht haben. Ich bin mir sicher, dass ich diesen Code getestet habe, als ich ihn vor Wochen geschrieben habe, aber es ist kürzlich gescheitert. –

Antwort

0

Hallo Steve versuchen, dies auf meiner Tapete Projekt standardmäßig Galerie zu funktionieren scheint

Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_PICTURE); 
+0

Danke, aber das gibt genau das gleiche Ergebnis wie mein Code. –

1

Ich denke, nicht Ergebniscode zurück, wenn Sie nicht in der Absicht angeben Ergebniscode zurück. Sie können in der Absicht angeben Ergebniscode zurück, indem Sie diesen Schnipsel in der Code wie folgt ergänzt:

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
intent.putExtra("return-data", true); //added snippet 
startActivityForResult(Intent.createChooser(intent, "Select Picture"),SELECT_PICTURE); 

Wenn dieser Beitrag Ihnen hilft, bitte diesen Beitrag als Antwort markieren.

Danke.

0

Ich hatte dasselbe Problem in einer meiner Aktivitäten, wenn ich launchMode = "singleInstance" in Manifest für diese Aktivität festlegen. Es funktioniert gut, wenn ich dieses Attribut entferne.

Verwandte Themen