-
SMS App
Hallo zusammen,
Ich bin gerade dabei etwas mit C# und Windows Phone Apps ,,herumzuspielen''.
Ich versuche eine kleine App zu erstellen die automatisch vor jede SMS *T# einfügt.
Bisher funktioniert das auch im Emulator ganz gut.
Nun möchte ich noch hinzufügen dass der Empfänger aus dem Telefon-Adressbuch ausgewählt wird.
Der Code sieht bisher so aus:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
namespace PhoneApp7
{
public partial class MainPage : PhoneApplicationPage
{
private string var;
// Konstruktor
public MainPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Microsoft.Phone.Tasks.SmsComposeTask sms = new Microsoft.Phone.Tasks.SmsComposeTask();
sms.To = "111111111111111";
sms.Body = "*T# ";
sms.Show();
}
}
}
Ich habe schon ein paar Sachen ausprobiert wie z.B. Microsoft.Phone.Tasks.PhoneNumberChooserTask. Hat aber leider noch nicht so richtig funktioniert.
Hat jemand eine Lösung wie ich das anstellen kann?
Vielen Dank.
Grüße,
Alex
-
AW: SMS App
Hallo Alex,
zunächst erstellst du einen Button und baust dort einen Click-Event rein. Im Event-Handler initialisierst du das PhoneNumberChooserTask-Objekt:
PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask();
Nun musst den Event initialisieren, der das Ergebnis behandelt:
phoneNumberChooserTask.Completed += phoneNumberChooserTask_Completed;
Zum Schluss zeigst du das Telefonbuch an:
phoneNumberChooserTask.Show();
Die Behandlung des Ergebnisses sieht wie folgt aus:
private void phoneNumberChooserTask_Completed(object sender, PhoneNumberResult e)
{
Aushängen des Eventhandlers, da er nach Rückkehr aus dem Adressbuch nicht mehr benötigt wird:
((PhoneNumberChooserTask)sender).Completed -= phoneNumberChooserTask_Completed;
//Prüfen, ob der Task beendet wurde
if (e.TaskResult == TaskResult.OK)
{
Hier wird ein Einzelkontakt ausgelesen und in Controls dargestellt:
m_txtEmpfaenger.Text = e.PhoneNumber;
m_lblEmpfaenger.Text = e.DisplayName;
}
}
Wenn du mehrere Kontakte und ohne Benutzeraktion die Aktion durchführen willst (wie WhatsApp) muss du in der MSDN nach dem Objekt suchen und dort nachlesen.