수색…


DeviceFamily 특정 코드

일반적으로 UWP는 여러 다른 장치에서 Windows 10에서 실행되는 단일 응용 프로그램을 만드는 데 사용됩니다. 그러나 특정 장치에 맞게 코드를 만들 수도 있습니다. 여러 가지 방법으로이를 달성 할 수 있습니다.

다른 XAML 레이아웃

특정 "장치 제품군"에 대해 특정 레이아웃을 사용하려면 대상 XAML 파일과 동일한 이름의 새 XAML 페이지 항목을 만들고 대상 장치 패밀리를 나타내는 접미사를 추가하여이 작업을 수행 할 수 있습니다. 그런 다음 모든 장치에 대해 MainPage.xaml 을 갖게되고 특정 패밀리에 대해서만 MainPage.DeviceFamily- [특정 패밀리] .xaml 을 갖게되어 기본 레이아웃을 덮어 씁니다. 아래를 참조하십시오.

이미지 1

많은 파일에서이 작업을 수행하려면 DeviceFamily- [특정 패밀리] 라는 이름의 폴더를 만들고 모든 XAML 페이지를 기본 XAML 파일 (아래 참조)과 동일한 이름으로 정확하게 추가 할 수 있습니다. 두 예제 모두에서 모든 페이지가 동일한 코드 숨김 파일을 공유하므로 기능은 동일하지만 레이아웃은 특정 화면 크기에 맞게 조정됩니다.

이미지 2

특정 가족 용 코드

특정 장치 제품군에서만 코드 숨김 또는 ViewModel의 일부를 실행하려면 AnalyticsVersionInfo 클래스의 DeviceFamily 속성을 사용할 수 있습니다.

AnalyticsVersionInfo avi = AnalyticsInfo.VersionInfo;
var deviceFamily = avi.DeviceFamily;

if(deviceFamily == "Windows.Mobile")
{
   Console.WriteLine("You're on mobile device right now.");
}
else if(deviceFamily == "Windows.Desktop")
{
   Console.WriteLine("You're on desktop");
}
else if(deviceFamily == "Windows.IoT")
{
   Console.WriteLine("You're on IoT");
}
//....

현재 장치 제품군 가져 오기

현재 장치 제품군을 가져 오는 간단한 휴대용 방법 :

/// <summary>
/// All the device families 
/// </summary>
public enum DeviceFamily
{
    Desktop,
    Mobile,
    Iot,
    Xbox,
}

/// <summary>
/// The helper to get the current device family
/// </summary>
public static class DeviceFamilyHelper
{
    /// <summary>
    /// Return the family of the current device
    /// </summary>
    /// <returns>the family of the current device</returns>
    public static DeviceFamily GetDeviceFamily()
    {
        switch(ResourceContext.GetForCurrentView().QualifierValues["DeviceFamily"].ToLowerInvariant())
        {
            case "mobile":  return DeviceFamily.Mobile;    
            case "xbox":    return DeviceFamily.Xbox;
            case "iot":     return DeviceFamily.Iot;
            default:        return DeviceFamily.Desktop;
        }
    }
}

API 계약이 지원되는지 감지합니다.

시스템의 장치 / 릴리스 버전에 따라 일부 API를 사용하지 못할 수도 있습니다. ApiInformation.IsApiContractPresent () 를 사용하여 지원되는 계약을 확인할 수 있습니다.

예를 들어 이것은 전화 장치에서는 true를 반환하고 다른 장치에서는 false를 반환합니다.

ApiInformation.IsApiContractPresent(typeof(CallsPhoneContract).FullName, 1)

API가 속한 계약은 MSDN의 API 페이지 하단에서 사용 가능하거나 전체 목록은 API 계약 페이지 에서 사용할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow