在Xamarin Application启动期间动态设置的静态变量

时间:2017-10-20 05:26:10

标签: xamarin xamarin.ios xamarin.android

我在Xamarin中有两个应用程序。一个是Android,另一个是iOS(不在Xamarin.Forms中)。我想要一个静态变量,它指示整个应用程序将使用的iOS或Android(例如,Android为1,iOS为2)。这必须动态设置,因为它们都使用相同的服务。它用于区分平台。 我怎么能让它成为可能?

2 个答案:

答案 0 :(得分:2)

您可能需要使用DeviceInfo插件。 Nuget Package是here

使用Platform属性获取设备的当前平台。它将返回一个定义平台的枚举值。

var currentPlatform = CrossDeviceInfo.Current.Platform;

这将从以下位置返回平台Enum:

public enum Platform
{
    Android,
    iOS,
    WindowsPhone,
    Windows,
    WindowsTablet,
    SurfaceHub,
    Xbox,
    IoT,
    Unknown,
    tvOS,
    watchOS,
    macOS
}

您必须在要获取当前Platform值的所有Xamarin项目中安装此插件。您可以将此属性的结果分配给要使用的静态变量。

答案 1 :(得分:0)

使用静态变量创建一个类似乎是您正在寻找的,如果您不在Xamarin表单中开发每个部署必须使用不同的项目

所以简单地在每个类中都有一个类称为动态变量(或者你想要的其他东西) 根据你想要做的事情,将静态整数设置为1 on 2,然后在每次向服务发送内容时调用该类的变量

我附上了样本

namespace MyApp
{
   public class Constants
   {
     public static int DeviceId=  1;//1 for Android 2 for IOS
    }

}

然后在您引用服务时简单地拨打电话

myservice.mymethod(Constants.DeviceId);//sends the deviceid trough the service 

应该是你需要的