Using Device Information Plugin for Xamarin and Windows, you have access to same information for a device:
- GenerateAppId: used to generate a unique Id for your app.
- Id: this is the device specific Id
- Device Model: get the model of the device
- Version: get the version of the Operating System
If you want the device name, it’s not in this list. Then for that we can create our functions.
IDevice interface
First of all we have to create an interface, I call it IDevice.
using System; namespace myApp.Interfaces { public interface IDevice { string DeviceName(); } }
The GetDeviceName() method returns the name of the device. You will need to implement this method in iOS and Android.
iOS dependency
Then in iOS project, I add a new dependence like:
using System; using myApp.iOS; using myApp.Interfaces; [assembly: Xamarin.Forms.Dependency(typeof(Device_iOS))] namespace myApp.iOS { public class Device_iOS: IDevice { public string GetDeviceName() { return UIKit.UIDevice.CurrentDevice.Name; } } }
To get the name of the device in iOS, you use the UIDevice class in the UIKit Framework.
Android
For Android, I add the following code to the project:
using System; using Android.Bluetooth; using myApp.Droid; using myApp.Interfaces; using Xamarin.Forms; [assembly: Dependency(typeof(Device_Droid))] namespace myApp.Droid.Dependencies { public class Device_Droid : IDevice { ////// Get device the name. /// ///The name. public string DeviceName() { BluetoothAdapter myDevice = BluetoothAdapter.DefaultAdapter; return myDevice.Name; } } }
Getting the device name is a little tricky in Android, which has no public API for that purpose. You can get it from the BluetoothAdapter class; however, to use the BluetoothAdapter class, you need to add the Bluetooth permission in the Android project.
Call dependency
After that I have to add in my main project a call to the dependency.
var platform = DependencyService.Get<IDevice> (); string name = platform.GetDeviceName();
Happy coding!