Tidak punya windows phone device tidak dapat testing GPS functionality pada windows phone emulator.
Jawabannya salah.
Adalah benar bahwa emulator Windows Phone saat ini tidak mendukung untuk melakukan testing jika kita memanfaatkan GPS API yang terdapat pada Windows Phone. Tapi , bukan berarti kita harus berhenti untuk mencoba dengan alasan “Nanti tidak bisa di coba di emulator “.
Tampaknya tim developer Windows Phone menyadari hal ini dan telah membuat sebuah Windows Phone GPS Emulator, agar pada developer yang ingin mencoba fitur GPS berhenti beralasan seperti tadi. Dan GPS Emulator ini sangatlah lengkap , terdiri dari sebuah kelas yang menduplikasi cara kerja kelas library GeoCoordinateWatcher dan sebuah Windows Phone GPS Emulator (aplikasi WPF). Tidak tanggung-tanggung, tim ini membuat sebuah resep yang dapat membantu kita “memasak” aplikasi yang memanfaatkan GPS API. Resep tersebut terdiri dari :
- GPS Emulator
- GPS Emulator Client DLL
- Windows Phone apps untuk melakukan testing terhadap Emulator
- WIndows Phone apps yang menggunakan Bing Maps
Semua nya dibawah Ms-License dan dapat di unduh disini : http://create.msdn.com/en-us/education/catalog/article/GPS-Emulator
Untuk latihan mari melihat bagaimana cara menggunakan emulator tersebut.
1. Aktifkan GPS Emulator. Tersedia di folder GpsEmulatorGpsEmulatorGpsEmulator_AppHubReadyGpsEmulatorGpsEmulatorbinDebug. Jangan lupa di jalankan dibawah akun Administrator.
Perhatikan di sebelah kanan bawah, ada notifikasi apakah terdapat klien yang terkoneksi. Under the hood, emulator ini menyediakan WCF service yang bisa di consume oleh DLL yang bersangkutan. Untuk melakukan perubahan posisi di sudut kiri atas terdapat kotak2x untuk mengisikan langitude dan longitude. Untuk mengirim koordinat tersebut klik Update Point.
2.Untuk mengonsumsi tersebut, Tambahkan GpsEmulatorClient.dll (GpsEmulatorGpsEmulatorGpsEmulator_AppHubReadyGpsEmulatorGpsEmulatorClientBinDebug) pada project Windows Phone Anda atau biar lebih sederhana, kita inspeksi saja contoh aplikasi yang dimiliki Emulator ini.
Kode sederhana paling simpel dan straight forward ada di file MainPage.xaml.cs adalah cara akses DLL tersebut. yaitu :
private IGeoPositionWatcher<GeoCoordinate> _Watcher; // Constructor public MainPage() { InitializeComponent(); #if GPS_EMULATOR _Watcher = new GpsEmulatorClient.GeoCoordinateWatcher(); #else _Watcher = new System.Device.Location.GeoCoordinateWatcher(); #endif _Watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>> (watcher_PositionChanged); } void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { tbLatitude.Text = e.Position.Location.Latitude.ToString(); tbLongtitude.Text = e.Position.Location.Longitude.ToString(); }
Di bagian #IF diatas adalah kode yang mengakses emulator. Penggunaannya sama persis dengan kelas GPS API yang sebenarnya. Jangan lupa untuk comment baris tersebut ketika ingin di –deploy ke device yang sebenarnya. Once, langitude dan longitude sudah didapatkan, dapat kita gunakan untuk keperluan aplikasi kita, mencari lokasi terdekat, mencari teman terdekat, jadwal sholat untuk lokasi tersebut dan sebagainya. Tekan F5 untuk mencobanya
Jika aplikasi WP berhasil mengakses koordinat maka di simulator akan menampilkan notifikasi. Kita dapat bermain memindah-mindahkan posisi dan aplikasi WP akan mendeteksi perubahan tersebut.
So, masih berpikir tanpa device tidak bisa membuat aplikasi yang memanfaatkan GPS ?
Note :
Ternyata om Z sudah pernah posting dengan topik serupa, saya malah tidak memeriksa terlebih dahulu. It’s okey then, karena itu menggunakan Bahasa Indonesia.