Top Banner
Device APIs with Xamarin Accessing Phonebook, Location, Camera http://schoolacademy.telerik.com Telerik School Academy http://schoolacademy.teleri k.com Xamarin apps for iOS, Android & WinPhone
16

Accessing Phonebook, Location, Camera Telerik School Academy Xamarin apps for iOS, Android & WinPhone.

Jan 03, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Device APIs with Xamarin

Accessing Phonebook, Location, Camera

http://schoolacademy.telerik.com

Telerik School Academyhttp://schoolacademy.telerik.com

Xamarin apps for iOS, Android & WinPhone

Page 2: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

2

Table of Contents

1. Reference Xamarin.Mobile

2. Accessing Device APIs Geo location

Address book

Camera

Page 3: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Xamarin.Mobile Download Xamarin.Mobile or install through Components for each platform

3

Page 4: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

4

Table of Contents

1. Reference Xamarin.Mobile

2. Accessing Device APIs

Geo location Address book

Camera

Page 5: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Geolocation Shared Code

Add interface IGeolocator

Use DependencyServices to call methods

Use MessageingCenter to Subscribe to event

Public interface IGeolocator { void GetPosition();}

5

IGeolocator locator = DependencyService .Get<IGeolocator>(); locator.GetPosition();

MessagingCenter.Subscribe<IGeolocator, AppPosition>(this, [matching string], DisplayPosition);

Page 6: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Geolocation Implementation

Add device implementation and use Dependency

6

[assembly: Dependency (typeof (Geolocator_Android))]public class Geolocator_Android : Action, IGeolocator { public GeoLocation GetPosition () { var locator = new Geolocator(Forms.Context) { DesiredAccuracy = 50 }; if (locator.IsListening != true) { locator.StartListening( minTime: 1000, minDistance: 0); } var pos = await locator.GetPositionAsync( timeout: 20000); MessagingCenter.Send<IGeolocator, AppPosition>( this, "gotLocation", new AppPosition( pos.Latitude, pos.Longitude) }); }}

Page 7: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

7

Table of Contents

1. Reference Xamarin.Mobile

2. Accessing Device APIs Geo location

Address book Camera

Page 8: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Address Book Shared Code

Add interface IContactsGetter

Use DependencyServices to call methods

Use MessageingCenter to Subscribe to event

8

Public interface IContactsGetter { void GetPhonebook();}

IContactsGetter contactsGetter = DependencyService .Get<IContactsGetter>(); contactsGetter.GetPhonebook();

MessagingCenter .Subscribe<IContactsGetter, IEnumerable<AppContact>> (this, [matching string], DisplayContacts);

Page 9: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Address Book Implementation

Add device implementation and use Dependencypublic async void GetPhonebook() { var book = new AddressBook(Forms.Context); var hasAccess = await book.RequestPermission();

if (hasAccess) { List<AppContact> contacts = new List<AppContact>(); foreach (var c in book) { contacts.Add(new AppContact() { Name = c.DisplayName, Number = c.Phones.FirstOrDefault().Number }); } MessagingCenter .Send<IContactsGetter,IEnumerable<AppContact>> (this, "gotContacts", contacts);} }

9

Page 10: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

10

Table of Contents

1. Reference Xamarin.Mobile

2. Accessing Device APIs Geo location

Address book

Camera

Page 11: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Camera Shared Code Add interface ITakePhoto

Add assembly Dependency

Public interface ITakePhoto { void TakePhoto();}

11

IPhotoTaker picker = DependencyService .Get<IPhotoTaker>();picker.TakePhoto();

MessagingCenter .Subscribe<IPhotoTaker, string>( this, "photoTaken", PathPhotoTaken);

Page 12: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Camera Android (1) Add device implementation and use

Dependency

12

public async void TakePhoto() { var picker = new MediaPicker(Forms.Context); var intent = picker.GetTakePhotoUI(new StoreCameraMediaOptions { DefaultCamera = CameraDevice.Rear, Directory = "DemoFolder", Name = "myPic.jpg" });

StartActivityForResult(intent, 1);}

Page 13: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Camera Android (2) Override OnActivityResult

13

protected async override void OnActivityResult( int requestCode, Result resultCode, Intent data){ if (resultCode == Result.Canceled) return;

var mediaFile = await data .GetMediaFileExtraAsync(Forms.Context);

MessagingCenter.Send<IPhotoTaker, string>( this, "photoTaken", mediaFile.Path);}

Page 14: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Camera iOS Add interface and use the

Xamarin.DependencyServices

using Xamarin.Media;// ...

var picker = new MediaPicker();picker .PickPhotoAsync() .ContinueWith (t => { MediaFile file = t.Result; Console.WriteLine (file.Path);}, TaskScheduler.FromCurrentSynchronizationContext());

14

Page 15: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Device APIs with Xamarin

http://academy.telerik.com

Page 16: Accessing Phonebook, Location, Camera Telerik School Academy  Xamarin apps for iOS, Android & WinPhone.

Free Trainings @ Telerik Academy

C# Programming @ Telerik Academy csharpfundamentals.telerik.com

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com