Koptekst - X-Apparaat-Info header-x-device-info

NOTE
De inhoud op deze pagina wordt alleen ter informatie verstrekt. Voor het gebruik van deze API is een huidige licentie van Adobe vereist. Ongeautoriseerd gebruik is niet toegestaan.

Overzicht overview

De x-apparaat-Info verzoekkopbal bevat de cliëntinformatie (apparaat, verbinding en toepassing) met betrekking tot het daadwerkelijke het stromen apparaat.

Syntaxis syntax

x-apparaat-Info : <device_information>
Type koptekst
Koptekst aanvragen
Standaard
Nee

Richtlijnen directives

<device_information>

De Base64-encoded -waarde van het JSON-element dat ten minste de kenmerken bevat die zijn gemarkeerd als vereist door de volgende tabel.

Aanwezigheid
Sleutel
Beschrijving
Beperkt
Mogelijke waarden
primaryHardwareType
Het primaire hardwaretype van het apparaat.

De waarden zijn beperkt:

  • Camera
  • DataCollectionTerminal
  • Desktop
  • EmbeddedNetworkModule
  • eReader
  • GamesConsole
  • GeolocationTracker
  • Bril
  • MediaPlayer
  • Mobiele telefoon
  • PaymentTerminal
  • PluginModem
  • SetTopBox
  • TV
  • Tablet
  • WirelessHotspot
  • polshorloge
  • Onbekend
vereist
model
De modelnaam van het apparaat.
bv. iPhone, SM-G930V, AppleTV, enz.
vereist
versie
De apparaatversie.
bv. 2.0.1, enz.
fabrikant
Het productiebedrijf/de organisatie van het apparaat.
bv. Samsung, LG, ZTE, Huawei, Motorola, Apple, enz.
leverancier
De verkoopmaatschappij/organisatie van het apparaat.
bijvoorbeeld Apple, Samsung, LG, Google, enz.
vereist
osName
De naam van het besturingssysteem van het apparaat.

De waarden zijn beperkt:

  • Android
  • CHROME OS
  • Linux
  • MAC OS
  • OS X
  • OpenBSD
  • Roku OS
  • Windows
  • iOS
  • tvOS
  • webOS
osFamily
De groepsnaam van het besturingssysteem van het apparaat.

De waarden zijn beperkt:

  • Android
  • BSD
  • Linux
  • PlayStation-besturingssysteem
  • Roku OS
  • Symbian
  • Tizen
  • Windows
  • iOS
  • tvOS
  • macOS
  • webOS
osVendor
De leverancier van het besturingssysteem van het apparaat.

De waarden zijn beperkt:

  • Amazon
  • Apple
  • Google
  • LG
  • Microsoft
  • Mozilla
  • Nintendo
  • Nokia
  • Roku
  • Samsung
  • Sony
  • Tizen Project
vereist
osVersion
De versie van het besturingssysteem van het apparaat.
bv. 10.2, 9.0.1, enz.
browserName
De browsernaam.

De waarden zijn beperkt:

  • Android Browser
  • Chrome
  • Edge
  • Firefox
  • Internet Explorer
  • Opera
  • Safari
  • SeaMonkey
  • Symbian Browser
browserVendor
De bouwonderneming/organisatie van de browser.

De waarden zijn beperkt:

  • Amazon
  • Apple
  • Google
  • Microsoft
  • Motorola
  • Mozilla
  • Netscape
  • Nintendo
  • Nokia
  • Samsung
  • Sony Ericsson
browserVersion
De browserversie van het apparaat.
bijv. 60.0.3112
userAgent
De gebruikersagent van het apparaat.
Bijvoorbeeld Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8
displayWidth
De fysieke schermbreedte van het apparaat.
displayHeight
De fysieke schermhoogte van het apparaat.
displayPpi
De fysieke pixeldichtheid van het scherm van het apparaat.
bijv. 294
diagonalScreenSize
De fysieke schermdiagonale afmeting van het apparaat in inches.
bv. 5.5, 10.1
connectionIp
IP van het apparaat gebruikt voor het verzenden van HTTP- verzoeken.
bijv. 8.8.4.4
connectionPort
De poort van het apparaat die wordt gebruikt voor het verzenden van HTTP-aanvragen.
bijv. 53124
vereist
connectionType
Het type netwerkverbinding.
bijv. WiFi, LAN, 3G, 4G, 5G
connectionSecure
De beveiligingsstatus van de netwerkverbinding.

De waarden zijn beperkt:

  • true - in het geval van een beveiligd netwerk
  • false - in het geval van een openbare hotspot
applicationId
De unieke id van de toepassing.
bijv. REF30

Voorbeelden examples

// Device information
// {
//  "primaryHardwareType" : "MobilePhone",
//  "model":"SM-S901U",
//  "vendor":"samsung",
//  "version":"r0q",
//  "manufacturer":"samsung",
//  "osName":"Android",
//  "osVersion":"14"
// }

// BASE64-encoded
// ewogICJwcmltYXJ5SGFyZHdhcmVUeXBlIiA6ICJNb2JpbGVQaG9uZSIsCiAgIm1vZGVsIjoiU00tUzkwMVUiLAogICJ2ZW5kb3I
// iOiJzYW1zdW5nIiwKICAidmVyc2lvbiI6InIwcSIsCiAgIm1hbnVmYWN0dXJlciI6InNhbXN1bmciLAogICJvc05hbWUiOiJBbmRyb
// 2lkIiwKICAib3NWZXJzaW9uIjoiMTQiCn0=

X-Device-Info: ewogICJwcmltYXJ5SGFyZHdhcmVUeXBlIiA6ICJNb2JpbGVQaG9uZSIsCiAgIm1vZGVsIjoiU00tUzkwMVUiLAogICJ2ZW5kb3IiOiJzYW1zdW5nIiwKICAidmVyc2lvbiI6InIwcSIsCiAgIm1hbnVmYWN0dXJlciI6InNhbXN1bmciLAogICJvc05hbWUiOiJBbmRyb2lkIiwKICAib3NWZXJzaW9uIjoiMTQiCn0=

Cookbooks cookbooks

IMPORTANT
De codefragmenten en documentatiemiddelen worden verstrekt voor verwijzende doeleinden.
De codefragmenten zijn niet uitputtend en kunnen extra wijzigingen vereisen om in uw project te werken.
Ongeacht uw daadwerkelijke implementatie, moet de X-Device-Info kopbal een waarde bevatten die zoals in de wordt beschreven Richtlijnensectie.

Browsers browsers

Voor clienttoepassingen die in een browser worden uitgevoerd, kan de header X-Device-Info worden weggelaten omdat de browser automatisch een minimale set vereiste informatie in de header van User-Agent verzendt.

U kunt de header van X-Device-Info nog steeds gebruiken om aanvullende informatie over het apparaat, de verbinding en de toepassing op te geven, voor het geval dat uw clienttoepassing een bibliotheek of service integreert die een apparaat-identificatiemechanisme biedt.

Mobiele apparaten mobile-devices

iOS en iPadOS ios-ipados

Om de X-Device-Info kopbal voor apparaten te bouwen die iOS of iPadOSin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • Apple ontwikkelaarsdocumentatie voor UIDevice.
  • Apple ontwikkelaarsdocumentatie voor Reachability.
  • De handdocumentatie van Linux voor uname.
+ (NSString *)computeClientInformation {
        struct utsname u;
        uname(&u);

        NSString *hardware = [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];

        UIDevice *device = [UIDevice currentDevice];

        NSString *deviceType;

        switch (UI_USER_INTERFACE_IDIOM()) {
            case UIUserInterfaceIdiomPhone:
                deviceType = @"MobilePhone";
                break;
            case UIUserInterfaceIdiomPad:
                deviceType = @"Tablet";
                break;
            case UIUserInterfaceIdiomTV:
                deviceType = @"TV";
                break;
            default:
                deviceType = @"Unknown";
        }

        CGRect screenRect = [[UIScreen mainScreen] bounds];
        NSNumber *screenWidth = @((float) screenRect.size.width);
        NSNumber *screenHeight = @((float) screenRect.size.height);

        Reachability *reachability = [Reachability reachabilityForInternetConnection];
        [reachability startNotifier];

        NetworkStatus status = [reachability currentReachabilityStatus];

        NSString *connectionType;

        if (status == NotReachable) {
            connectionType = @"notConnected";
        } else if (status == ReachableViaWiFi) {
            connectionType = @"WiFi";
        } else if (status == ReachableViaWWAN) {
            connectionType = @"cellular";
        }

        NSMutableDictionary *clientInformation = [@{
                @"type": deviceType,
                @"model": device.model,
                @"vendor": @"Apple",
                @"manufacturer": @"Apple",
                @"version": [hardware stringByReplacingOccurrencesOfString:device.model withString:@""],
                @"osName": device.systemName,
                @"osVersion": device.systemVersion,
                @"displayWidth": screenWidth,
                @"displayHeight": screenHeight,
                @"connectionType": connectionType,
                @"applicationId": @"REF30"
        } mutableCopy];

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:clientInformation options:NSJSONWritingPrettyPrinted error:&error];
        NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];

        return base64Encoded;
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
uname.machine
iPhone
leverancier
hardgecodeerd
Apple
fabrikant
hardgecodeerd
Apple
versie
uname.machine
8,1
displayWidth
UIScreen.mainScreen
320
displayHeight
UIScreen.mainScreen
568
osName
UIDevice.systemName
iOS
osVersion
UIDevice.systemVersion
10,2

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
[ Reachability currentReachabilityStatus ]
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Android android

Om de X-Device-Info kopbal voor apparaten te bouwen die Androidin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • De ontwikkelaarsdocumentatie van Android voor bouwtklasse.
private JSONObject computeClientInformation() {
     String LOGGING_TAG = "DefineClass.class";

     JSONObject clientInformation = new JSONObject();

     String connectionType;

     try {
          ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(CONNECTIVITY_SERVICE);
          NetworkInfo activeNetwork = cm.getActiveNetworkInfo();

          if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
              switch (activeNetwork.getType()) {
                    case ConnectivityManager.TYPE_WIFI: {
                        connectionType = "WIFI";
                        break;
                    }
                    case ConnectivityManager.TYPE_BLUETOOTH: {
                        connectionType = "BLUETOOTH";
                        break;
                    }
                    case ConnectivityManager.TYPE_MOBILE: {
                        connectionType = "MOBILE";
                        break;
                    }
                    case ConnectivityManager.TYPE_ETHERNET: {
                        connectionType = "ETHERNET";
                        break;
                    }
                    case ConnectivityManager.TYPE_VPN: {
                        connectionType = "VPN";
                        break;
                    }
                    case ConnectivityManager.TYPE_DUMMY: {
                        connectionType = "DUMMY";
                        break;
                    }
                    case ConnectivityManager.TYPE_MOBILE_DUN: {
                        connectionType = "MOBILE_DUN";
                        break;
                    }
                    case ConnectivityManager.TYPE_WIMAX: {
                        connectionType = "WIMAX";
                        break;
                    }
                    default:
                       connectionType = ConnectivityManager.EXTRA_OTHER_NETWORK_INFO;
              }
          } else {
                connectionType = ConnectivityManager.EXTRA_NO_CONNECTIVITY;
          }
     } catch (Exception e) {
          connectionType = "notAccessible";
     }

     try {
          clientInformation.put("model", Build.MODEL);
          clientInformation.put("vendor", Build.BRAND);
          clientInformation.put("manufacturer", Build.MANUFACTURER);
          clientInformation.put("version", Build.DEVICE);
          clientInformation.put("osName", "Android");
          clientInformation.put("osVersion", Build.VERSION.RELEASE);
          clientInformation.put("connectionType", connectionType);
          clientInformation.put("applicationId", "REF30");
     } catch (JSONException e) {
          Log.e(LOGGING_TAG, e.getMessage());
     }

     return Base64.encodeToString(clientInformation.toString().getBytes(), Base64.NO_WRAP);
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
Build.MODEL
GT-I9505
leverancier
Build.BRAND
samsung
fabrikant
Build.MANUFACTURER
samsung
versie
Build.DEVICE
jflte
displayWidth
DisplayMetrics.widthPixels
600
displayHeight
DisplayMetrics.heightPixels
800
osName
hardgecodeerd
Android
osVersion
Build.VERSION.RELEASE
5.0.1.

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo().getType()
"WIFI","BLUETOOTH","MOBILE","ETHERNET","VPN","DUMMY","MOBILE_DUN","WIMAX","notAccessible"
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Op tv aangesloten apparaten tv-connected-devices

tvOS tvos

Om de X-Device-Info kopbal voor apparaten te bouwen die tvOSin werking stellen, kunt u naar de volgende documenten en onder codefragment verwijzen:

  • Apple ontwikkelaarsdocumentatie voor UIDevice.
  • Apple ontwikkelaarsdocumentatie voor Reachability.
  • De handdocumentatie van Linux voor uname.
+ (NSString *)computeClientInformation {
        struct utsname u;
        uname(&u);

        NSString *hardware = [NSString stringWithCString:u.machine encoding:NSUTF8StringEncoding];

        UIDevice *device = [UIDevice currentDevice];

        NSString *deviceType;

        switch (UI_USER_INTERFACE_IDIOM()) {
            case UIUserInterfaceIdiomPhone:
                deviceType = @"MobilePhone";
                break;
            case UIUserInterfaceIdiomPad:
                deviceType = @"Tablet";
                break;
            case UIUserInterfaceIdiomTV:
                deviceType = @"TV";
                break;
            default:
                deviceType = @"Unknown";
        }

        CGRect screenRect = [[UIScreen mainScreen] bounds];
        NSNumber *screenWidth = @((float) screenRect.size.width);
        NSNumber *screenHeight = @((float) screenRect.size.height);

        Reachability *reachability = [Reachability reachabilityForInternetConnection];
        [reachability startNotifier];

        NetworkStatus status = [reachability currentReachabilityStatus];

        NSString *connectionType;

        if (status == NotReachable) {
            connectionType = @"notConnected";
        } else if (status == ReachableViaWiFi) {
            connectionType = @"WiFi";
        } else if (status == ReachableViaWWAN) {
            connectionType = @"cellular";
        }

        NSMutableDictionary *clientInformation = [@{
                @"type": deviceType,
                @"model": device.model,
                @"vendor": @"Apple",
                @"manufacturer": @"Apple",
                @"version": [hardware stringByReplacingOccurrencesOfString:device.model withString:@""],
                @"osName": device.systemName,
                @"osVersion": device.systemVersion,
                @"displayWidth": screenWidth,
                @"displayHeight": screenHeight,
                @"connectionType": connectionType,
                @"applicationId": @"REF30"
        } mutableCopy];

        NSError *error;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:clientInformation options:NSJSONWritingPrettyPrinted error:&error];
        NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];

        return base64Encoded;
}

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
uname.machine
AppleTV
leverancier
hardgecodeerd
Apple
fabrikant
hardgecodeerd
Apple
versie
uname.machine
8,1
displayWidth
UIScreen.mainScreen
1920
displayHeight
UIScreen.mainScreen
1080
osName
UIDevice.systemName
tvOS
osVersion
UIDevice.systemVersion
10,2

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
[ Reachability currentReachabilityStatus ]
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Fire OS fireos

Om de X-Device-Info kopbal voor apparaten te bouwen die Vuur OSin werking stellen, kunt u naar de volgende documenten verwijzen:

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
Build.MODEL
AFTM
leverancier
Build.BRAND
Amazon
fabrikant
Build.MANUFACTURER
Amazon
versie
Build.DEVICE
montoya
displayWidth
DisplayMetrics.widthPixels
displayHeight
DisplayMetrics.heightPixels
osName
hardgecodeerd
Android
osVersion
Build.VERSION.RELEASE
5.1.1.

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
connectionSecure

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30

Roku OS rokuos

Om de X-Device-Info kopbal voor apparaten te bouwen die Roku OSin werking stellen, kunt u naar de volgende documenten verwijzen:

De informatie over de voorziening kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
model
hardgecodeerd
"Roku"
leverancier
ifDeviceInfo.GetModelDetails().VendorName
"Sharp", "Roku"
fabrikant
ifDeviceInfo.GetModelDetails().VendorName
"Sharp", "Roku"
versie
ifDeviceInfo.GetModelDetails().ModelNumber
"5303X"
displayWidth
ifDeviceInfo.GetDisplaySize().w
1920
displayHeight
ifDeviceInfo.GetDisplaySize().h
1080
osName
hardgecodeerd
"Roku"
osVersion
ifDeviceInfo.getVersion()

De verbindingsgegevens kunnen als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
connectionType
ifDeviceInfo.GetConnectionType()
"WifiConnection", "WiredConnection"
connectionSecure
hardgecodeerd
true als de verbinding is bekabeld

De toepassingsinformatie kan als volgt worden samengesteld:

Sleutel
Source
Waarde (voorbeeld)
applicationId
hardgecodeerd
REF30
recommendation-more-help
3f5e655c-af63-48cc-9769-2b6803cc5f4b