DeviceProfile is used to manage device hardware capabilities and system software features. A typical device profile includes the device type, device name, OS type, and OS version. By allowing quick access to local and remote device profiles, DeviceProfile lays the foundation for initiating distributed services. It provides the following features:
- Querying, inserting, and deleting local device profile information
- Querying remote device profile information
- Synchronizing profile information across devices
- Subscribing to remote device profile changes
Below is the architecture of the DeviceProfile subsystem.
The main code directory structure of DeviceProfile is as follows:
```
├── interfaces
│ └── innerkits
│ └── distributeddeviceprofile // Internal APIs
├── ohos.build
├── sa_profile // SAID profile
│ ├── 6001.xml
│ └── BUILD.gn
├── services
│ └── distributeddeviceprofile
│ ├── BUILD.gn
│ ├── include
│ │ ├── contentsensor // Header file for content sensor data collection
│ │ ├── dbstorage // Header file for database operations
│ │ ├── devicemanager // Header file for device management
│ │ └── subscribemanager // Header file for subscription management
│ ├── src
│ │ ├── contentsensor // Implementation of content sensor data collection
│ │ ├── dbstorage // Implementation of database operations
│ │ ├── devicemanager // Implementation of device management
│ │ ├── subscribemanager // Implementation of subscription management
│ └── test // Test cases
└── tools
└── dp // Auxiliary test tool
```
## Constraints<a name="section1718733212019"></a>
- The devices between which you want to set up a connection must be in the same LAN.
- Before setting up a connection between two devices, you must bind the devices. For details about the binding process, see relevant descriptions in the Security subsystem readme file.