Xamarin

Xamarin.Mobile | 0.7.5


El día de hoy les quiero hablar sobre Xamarin.Mobile, la cual es una biblioteca que expone un único conjunto de APIs para acceder a las funcionalidades comunes de los dispositivos móviles, tales como a la agenda o el uso de la cámara.

screenshot1

El objetivo de Xamarin.Mobile es disminuir la cantidad de código específico de la plataforma necesaria para realizar tareas comunes en aplicaciones multiplataforma, por lo que el desarrollo es más sencillo y rápido.

Xamarin.Mobile es actualmente una versión preliminar y está sujeto a cambios en la API.

Ejemplos:

Código para acceder a la agenda ( se requiere habilitar el permiso READ_CONTACTS en Android):

using Xamarin.Contacts;
// ...

var book = new AddressBook ();
//         new AddressBook (this); on Android
if (!await book.RequestPermission()) {
    Console.WriteLine ("Permission denied by user or manifest");
    return;
}

foreach (Contact contact in book.OrderBy (c => c.LastName)) {
    Console.WriteLine ("{0} {1}", contact.FirstName, contact.LastName);
}

Código para obtener la ubicación del usuario (se requiere habilitar ACCESS_COARSE_LOCATION y ACCESS_FINE_LOCATION en Android):

using Xamarin.Geolocation;
// ...

var locator = new Geolocator { DesiredAccuracy = 50 };
//            new Geolocator (this) { ... }; on Android

Position position = await locator.GetPositionAsync (timeout: 10000);

Console.WriteLine ("Position Status: {0}", position.Timestamp);
Console.WriteLine ("Position Latitude: {0}", position.Latitude);
Console.WriteLine ("Position Longitude: {0}", position.Longitude);

Código para tomar una foto:

using Xamarin.Media;
// ...

var picker = new MediaPicker ();
if (!picker.IsCameraAvailable)
    Console.WriteLine ("No camera!");
else {
    try {
        MediaFile file = await picker.TakePhotoAsync (new StoreCameraMediaOptions {
            Name = "test.jpg",
            Directory = "MediaPickerSample"
        });

        Console.WriteLine (file.Path);
    } catch (OperationCanceledException) {
        Console.WriteLine ("Canceled");
    }
}

En Android se requiere habilitar el permiso WRITE_EXTERNAL_STORAGE:

using Xamarin.Media;
// ...

protected override void OnCreate (Bundle bundle)
{
    var picker = new MediaPicker (this);
    if (!picker.IsCameraAvailable)
        Console.WriteLine ("No camera!");
    else {
        var intent = picker.GetTakePhotoUI (new StoreCameraMediaOptions {
            Name = "test.jpg",
            Directory = "MediaPickerSample"
        });
        StartActivityForResult (intent, 1);
    }
}

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

    MediaFile file = await data.GetMediaFileExtraAsync (this);
    Console.WriteLine (file.Path);
}
Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s