2010-12-30 13 views
0

So versuche ich, eine Absicht aufzurufen, die ein Bild an eine Textnachricht anhängen wird. Der folgende Code öffnet ein Textnachrichtenfenster mit dem Bild auf dem Emulator, aber stürzte auf meinem Telefon (Droid X).Verwenden einer MMS-Absicht mit einer Bilddatei

  String name = FILE_NAME; 

      Uri uri = Uri.fromFile(new File(name)); 

      Intent intent = new Intent(Intent.ACTION_SEND); 
      intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); 
      intent.putExtra(Intent.EXTRA_STREAM, uri); 
      intent.setType("image/png"); 
      startActivity(intent); 

.

12-30 12:56:50.628: ERROR/AndroidRuntime(14603): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml? 

Das Problem ist die Zeile .setClassName. Ich habe den Wert für die Klasse fest programmiert, was wahrscheinlich falsch ist. Was soll ich hier verwenden, um alle Telefone zu unterstützen?

Vielen Dank.

Antwort

3

Legen Sie den Klassennamen überhaupt nicht fest. Dies führt dazu, dass Android die bestmögliche Aktivität für Sie findet und den App-Auswahldialog bei Bedarf startet.

Eine Alternative wäre, alle möglichen Aktivitäten für die Absicht aufzulösen und eine Logik zu verwenden, um zu bestimmen, welche Sie bevorzugen, und standardmäßig Android wählen zu lassen, wenn Ihre Logik eine nicht auswählen kann. Das ist ein wenig übertrieben, und wenn es Ihr Ziel ist, den Benutzer nur eine MMS senden zu lassen, brauchen Sie diese Detailgenauigkeit nicht.

0

sendIntent.setPackage ("com.android.mms");

das wird Ihr Problem lösen

Verwandte Themen