Memangil Daftar Kontak di Windows Phone

Yah, seiring berkembangnya zaman kontak yang kita miliki semakin banyak dan semakin lengkap jika dibandingkan kontak yang lama. Dulu informasi kontak yang kita simpan di dalam handphone kita hanya bisa menyimpan satu nomor untuk satu nama. Sehingga jika ada teman yang memiliki nomor yang banyak maka kita akan menyimpan namanya berkali-kali. Sekarang untuk menghubungi teman kita terkadang kita tidak butuh nomor telpon tetapi kita menghubungi lewat email dan account jejaring sosial lainnya. untuk menyimpan informasi email dan jejaring sosial terkadang menyebabkan kontak di smartphone kita penuh padahal ketika kita ingin menelponny kita tidak memiliki nomornya.

Terus apa hubungannya dengan postingan ini?? Yah akibatnya jika kita membuat aplikasi yang memiliki fitur SMS akan mengakibatkan aplikasi kita error karena jika kita memilih kontka yang tidak memiliki nomor hp maka aplikasi kita akan error. Maka dari itu postingan ini akan membahas bagaimana kita bisa membuat fitur sms dan kita bisa memilih kontak dari kontak yang sudah pasti memiliki nomor hp.

Fitur SMS sebenarnya di Windows Phone di kenal dengan Louncher and Chooser Sending SMS dan get Kontak. Sebelum kita menambah fitur sms lebih baik kita buat terlebih dahulu halaman kita untuk mengetik sms dan di lengkapi oleh tombol untuk memilih kontak tujuan SMS dan langsung memangil halaman SMS. Setelah kita ketik send maka kita cukup tambahkan di halaman kontak untuk menampilkan kontak kita yang memiliki nomor kontak saja.

Untuk mendapatkan kontak yang ada di dalam device kita. Pertama tama kita buka WMAppManifest.xml yang terdapat di bagian Properties pada solution explorer dan pastikan semua bagian ini sudah di ceklist di dalam Capabilities. dan tambahkan

using Microsoft.Phone.Tasks;
using Microsoft.Phone.UserData;

Setelah di tambahan sekarang cukup tambahkan kode di bawah ini di halaman kontak yang telah di buat.

 

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (NavigationContext != null && NavigationContext.QueryString.TryGetValue("param", out param))
            {
                PhoneNumberChooserTask _phoneNumberChooser = new PhoneNumberChooserTask();
                _phoneNumberChooser.Completed += _phoneNumberChooser_Completed;
                _phoneNumberChooser.Show();
            }
            else
                NavigationService.GoBack();
        }

 

Untuk menampilkan kontak yang memiliki nomor handphone saja maka kita perlu memfilter kontak. untuk memfilternya kita harus mengecek semua nomor telpon semua kontak.

        void cons_SearchCompleted(object sender, ContactsSearchEventArgs e)
        {
           List<Contact> People = new List<Contact>() ;
           foreach (Contact con in e.Results){
                if(con.PhoneNumbers.FirstOrDefault()!=null)
                    People.Add(con);
           }
           ContactResultsData.ItemsSource =People;
        }

Jika kita sudah bisa menampilkan semua kontak yang memiliki nomor telpon saja sekarang bagaimana menangkap aksi jika salah satu kontak sudah di pilih.

        void _phoneNumberChooser_Completed(object sender, PhoneNumberResult e){
            SmsComposeTask _sms = new SmsComposeTask();
            if (e.PhoneNumber != null)
            {
                _sms.To = e.PhoneNumber.ToString();
                _sms.Body = param; _sms.Show();
            }
            else {
                NavigationService.GoBack();
            }
        }
    }

Yah semoga bisa membantu teman-teman sekalian..

Happy Coding.. 🙂