我在Xamarin中有两个应用程序。一个是Android,另一个是iOS(不在Xamarin.Forms中)。我想要一个静态变量,它指示整个应用程序将使用的iOS或Android(例如,Android为1,iOS为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
应该是你需要的