# System data types

System data types determine what kind of values system attributes are associated with. In JavaScript terms, the specified data type determines the `SystemData` (input) and `ReturnValue` (output) object properties that represent the value of a system attribute. Depending on the system data type, there can be one or more properties. Depending on the system attribute, the data type used for method input may differ from the data type used for method output.

The SystemInfo Service API supports the following system data types:

- `Status`

- `StringData`

- `NetworkInfo`

- `ConnectionList`

- `ConnectionInfo`

- `AccessoryList`

- `AccessoryInfo`

- `LanguageList`

- `Version`

- `DriveList`

- `DriveInfo`

- `Resolution`

- `StringList`

The following tables describes the supported system data types. To find out which system attribute uses which system data type, and whether the same data type is used for both input and output, see section Supported system attributes (entities and keys).

Table: Status
Property | Description | Type | Value
--- | --- | --- | ---
`Status` | Specifies status information about the system attribute. | number | For example: Battery strength (%): `1 - 100` Network mode: `0 - 2`

Table: StringData
Property | Description | Type | Value
--- | --- | --- | ---
`StringData` | Specifies information about the system attribute in text string format. This can be used to indicate wallpaper path, IMEI number, phone model, manufacturer, and so forth. | string | For example: Phone model: `"N70"` Manufacturer: `"Nokia"` Wallpaper path: `"C://Data//Others//wallpaper.jpeg"`

Table: NetworkInfo
Property | Description | Type | Value
--- | --- | --- | ---
`NetworkName` | Specifies the name of the network connection of the device. | string |
`NetworkStatus` | Specifies the status of the network. | number | Possible values: `-1` - Unknown `0` - Available: Specifies the network ME can register `1` - Current: Specifies the currently registered network `2` - Forbidden: Specifies that the network ME is not allowed registering
`NetworkMode` | Specifies the network technology used by the network. | number | Possible values: `-1` - Unknown `0` - Unregistered `1` - Global System for Mobile Communications (GSM) `2` - Advanced Mobile Phone System (AMPS) `3` - Code Division Multiple Access (CDMA95) `4` - Code Division Multiple Access (CDMA2000) `5` - Wideband Code Division Multiple Access (WCDMA) `6` - Time Division, Code Division Multiple Access (TDCDMA)
`CountryCode` | Specifies the Mobile Country Code (MCC). | string |
`NetworkCode` | Specifies the Mobile Network Code (MNC). | string |
`LocationStatus` | Specifies whether the location area information is valid or not. | boolean | Possible values: `true` - Location Area Code (LAC) and cell ID are valid `false` - Location Area Code (LAC) and cell ID are invalid
`AreaCode` | Specifies Location Area Code (LAC). | number |
`CellId` | Specifies the cell ID. | number |

Table: ConnectionList
Property | Description | Type | Value
--- | --- | --- | ---
`ConnectionList` | Specifies a list of available active data connections. `ConnectionInfo` specifies a data connection. | iterator | List of `ConnectionInfo` objects

Table: ConnectionInfo
Property | Description | Type | Value
--- | --- | --- | ---
`ConnectionStatus` | Specifies the status of the data connection. | number | Possible values: `0` - Disconnected `1` - Connected
`IAPID` | Specifies the access point ID for the data connection. | number |
`ConnectionType` | Specifies the type of the data connection. | number | Possible values: Note: Unsupported connection types are enclosed in brackets. `-1` - Unknown `0` - (Circuit Switched Data (CSD)) `1` - (Wideband Code Division Multiple Access (WCDMA)) `2` - Local Area Network (LAN) [Emulator] `3` - (Code Division Multiple Access (CDMA2000)) `4` - (General Packet Radio Service (GPRS)) `5` - (High Speed Circuit Switched Data (HSCSD)) `6` - Enhanced Data rates for Global Evolution (EDGE), Enhanced GPRS (EGPRS) `7` - Wireless Local Area Network (WLAN) `8` - (Bluetooth) `9` - (Virtual VPN)
`IAPName` | Specifies the access point name. | string | For example: `"www.airtelgprs.com"`
`NetworkName` | Specifies the network name applicable for WLAN networks. | string |
`IAPConnectionName` | Specifies the access point connection name. | string | For example: `"MobileOffice"`, `"MyGprs"`

Table: AccessoryList
Property | Description | Type | Value
--- | --- | --- | ---
`AccessoryList` | Specifies a list of connected accessories. `AccessoryInfo` specifies an accessory. | iterator | List of `AccessoryInfo` objects

Table: AccessoryInfo
Property | Description | Type | Value
--- | --- | --- | ---
`AccessoryType` | Specifies the type of the accessory. | number | Possible values: `-1` - Unknown `0` - HeadSet `1` - BTHeadSet `2` - CarKit `3` - BTCarKit
`AccessoryState` | Specifies the connection state of the accessory. | number | Possible values: `-1` - Unknown `0` - Disconnected `1` - Connected

Table: LanguageList
Property | Description | Type | Value
--- | --- | --- | ---
`LanguageList` | Specifies a list of supported language enumerations as defined in the S60 device. | array of numbers |

Table: Version
Property | Description | Type | Value
--- | --- | --- | ---
`MajorVersion` | Specifies the major version number of the software in the device. | string | For example: S60 3rd Edition, Feature Pack 2 ("3.2"): `3`
`MinorVersion` | Specifies the minor version number of the software in the device. | strings | For example: S60 3rd Edition, Feature Pack 2 ("3.2"): `2`

Table: DriveList
Property | Description | Type | Value
--- | --- | --- | ---
`DriveList` | Specifies a list of drives in the device. `DriveInfo` specifies information about a drive. | array of strings | For example: `DriveList[0]`: `"C:\\"` `DriveList[1]`: `"D:\\"`

Table: DriveInfo
Property | Description | Type | Value
--- | --- | --- | ---
`Drive` | Specifies the drive. | string | For example: `"C:\\"`
`TotalSpace` | Specifies the total memory space in bytes. | string |
`FreeSpace` | Specifies the available free memory space in bytes. | string |
`CriticalSpace` | Specifies the critical free memory space in bytes. | number |
`MediaType` | Specifies the media type of the drive. | number | Possible values: `0` - MediaNotPresent `1` - MediaUnknown `2` - MediaFloppyDisk `3` - MediaHardDisk `4` - MediaCdRom `5` - MediaRam `6` - MediaFlash `7` - MediaRom `8` - MediaRemote `9` - MediaNANDFlash `10` - MediaRotatingMedia
`BatteryState` | Specifies the state of the drive's own battery unit, if any. | number | Possible values: `0` - BatNotSupported `1` - BatGood `2` - BatLow
`DriveName` | Specifies the drive name. | string |

Table: Resolution
Property | Description | Type | Value
--- | --- | --- | ---
`XPixels` | Specifies the screen resolution of x-pixels. | number |
`YPixels` | Specifies the screen resolution of y-pixels. | number |

Table: StringList
Property | Description | Type | Value
--- | --- | --- | ---
`StringList` | Specifies a list of the available USB modes. | array of strings |