@@ -874,7 +874,43 @@ - (NSDictionary *) searchNameConvertTableWithName : (NSString *)name
874874
875875- (NSArray *)devicePluginsList
876876{
877- return [self .mDeviceManager devicePluginList ];
877+ self.settings .useLocalOAuth = NO ;
878+ self.settings .useOriginEnable = NO ;
879+ DConnectRequestMessage *request = [DConnectRequestMessage new ];
880+ [request setAction: DConnectMessageActionTypeGet];
881+ [request setProfile: DConnectSystemProfileName];
882+ [request setOrigin: @" http://localhost:8080" ];
883+ __block NSMutableArray *devicePlugins = [NSMutableArray array ];
884+ __block DConnectDevicePluginManager *dMgr = self.mDeviceManager ;
885+ NSArray *list = [self .mDeviceManager devicePluginList ];
886+ dispatch_semaphore_t semaphore = dispatch_semaphore_create (0 );
887+ dispatch_time_t timeout = dispatch_time (DISPATCH_TIME_NOW, NSEC_PER_SEC * HTTP_REQUEST_TIMEOUT);
888+ [self sendRequest: request callback: ^(DConnectResponseMessage *response) {
889+ if (response != nil ) {
890+ if ([response result ] == DConnectMessageResultTypeOk) {
891+ DConnectArray *plugins = [response arrayForKey: DConnectSystemProfileParamPlugins];
892+ for (int i = 0 ; i < plugins.count ; i++) {
893+ DConnectMessage *message = [plugins messageAtIndex: i];
894+ NSString *version = [message stringForKey: DConnectMessageVersion];
895+ NSString *pluginId = [message stringForKey: DConnectSystemProfileParamId];
896+ pluginId = [pluginId stringByReplacingOccurrencesOfString: @" .dconnect" withString: @" " ];
897+ DConnectDevicePlugin *devicePlugin = (DConnectDevicePlugin *) [dMgr devicePluginForPluginId: pluginId];
898+ [devicePlugin setPluginVersionName: version];
899+ [devicePlugins addObject: devicePlugin];
900+ }
901+ }
902+
903+ }
904+ self.settings .useLocalOAuth = YES ;
905+ self.settings .useOriginEnable = YES ;
906+ dispatch_semaphore_signal (semaphore);
907+ }];
908+ long result = dispatch_semaphore_wait (semaphore, timeout);
909+ if (result != 0 ) {
910+ return [self .mDeviceManager devicePluginList ];
911+ } else {
912+ return devicePlugins;
913+ }
878914}
879915
880916- (NSString *)devicePluginIdForServiceId : (NSString *)serviceId
0 commit comments