2010-11-27 2 views
1

Ich versuche, senden Sie die Messaging-App, um eine SMS-Nachricht von einem Widget zu starten, aber wenn ich die Aktivität starte ich bekomme den Dialog "Vollständige Aktion mit" mit einer langen Liste von Anwendungen, aber ich sehe nicht die Nachricht Anwendung, die ich denke, sollte die Standardeinstellung für den Versuch sein, SMS-Nachrichten zu senden.Wenn Sie versuchen, eine SMS zu senden, wird der Dialog "Aktion abschließen mit" angezeigt, aber die Messaging-App ist nicht in der Liste?

Hier ist mein Code:

public void onUpdate(Context context, 
    AppWidgetManager appWidgetManager, int[] appWidgetIds) { 

    Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
    PendingIntent smsIntent1 = PendingIntent.getActivity(context, 0, sendIntent, 0); 
    sendIntent.putExtra("address", "8017777777"); 
    sendIntent.setType("vnd.android-dir/mms-sms"); 
    views.setOnClickPendingIntent(R.id.sms_btn1, smsIntent1); 

    appWidgetManager.updateAppWidget(appWidgetIds, views); 
    super.onUpdate(context, appWidgetManager, appWidgetIds); 

}

und mein Manifest hat dies darin:

<uses-permission android:name="android.permission.SEND_SMS"/> 

Irgendwelche Ideen? Vielen Dank!

Antwort

0

Ich habe versucht, was CommonsWare gesagt hat, aber es hat nicht funktioniert, aber es hat mich auf dem richtigen Weg (der die Intent.ACTION_SENDTO wurde mit fand ich, was ich hier gebraucht: http://snipt.net/Martin/android-intent-usage/

Dies ist, was es endete die aussehen wie:.?

Uri uri = Uri.parse("smsto:0800000123"); 
    Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
    it.putExtra("sms_body", "The SMS text"); 
    PendingIntent smsIntent1 = PendingIntent.getActivity(context, 0, it, 0); 
    views.setOnClickPendingIntent(R.id.sms_btn1, smsIntent1); 
+0

Entschuldigung - ich hatte das falsche Schema. Ich vergesse immer wieder, dass 'SENDTO'' smsto' verwendet. – CommonsWare

0

Wahrscheinlich hat die Messenger-App eine <intent-filter>, die Ihren MIME-Typ nicht abdeckt.

Ich bin mir nicht ganz sicher, warum Sie diesen MIME-Typ dort haben. Ich bin auch unklar, ob das ganze Intent überhaupt funktionieren wird. Ich weiß, das funktioniert, vorausgesetzt, 8017777777 wird eine Telefonnummer:

Intent sms=new Intent(Intent.ACTION_SENDTO, Uri.parse("tel:8017777777")); 

sms.putExtra("sms_body", msg.getText().toString()); 

startActivity(sms); 

Beachten Sie, dass Sie nicht die SEND_SMS Erlaubnis in diesem Fall benötigen. Sie benötigen das nur, wenn Sie SmsManager verwenden, um die SMS direkt zu senden.

Here is a project, die die obige Intent Syntax demonstriert, plus die Verwendung von SmsManager direkt, als Optionen zum Senden einer Textnachricht an einen Kontakt in Ihrer Kontaktliste. .

+0

ich versucht, und es ist nichts passiert überhaupt nach klicken auf die Schaltfläche ich frage mich, ob es ein Problem ist, weil es ein Widget Intent sms = new Intent (Intent.ACTION_SENDTO, Uri ist .parse ("tel: 8017777777")); sms.putExtra ("sms_body", "body"); PendingIntent smsIntent1 = PendingIntent.getActivity (Kontext, 0, SMS, 0); views.setOnClickPendingIntent (R.id.sms_btn1, smsIntent1); –

Verwandte Themen