앱이 배경에있는 동안 서버로 데이터를 전송하는 애플리케이션이 있습니다.데이터가 백그라운드에서 3G를 통해 전송되지 않음
-(bool) sendStats: (MCStatsSender*) val{
if(![self checkInternet]){ //Using Reachability here
return false;
}
NSDictionary *inputData = [NSDictionary dictionaryWithObjectsAndKeys:
self.propertyA.value, "key1",
val.data, "key2",
nil];
[myNetworkManager doRequest:[myRequestManager createWithStringAndDictionary:MY_URL Data:inputData handler:myHandler user:val]];
return true;
}
그래서 inputData
문자열 간단한 사전은 다음과 같습니다 여기에 데이터 송신을 담당하는 코드입니다.
방법 doRequest
가 NSURLSession에 따라 기본적으로이처럼 보이는 :
-(void) doRequest: (MCRequest*) request{
[tasks addObject:request];
if(m_session == nil){
NSURLSessionConfiguration* config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:[NSString stringWithFormat:@"key-%lu",reqid]];
m_session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
}
NSURLSessionDataTask* task = [m_session dataTaskWithRequest:request.generatedRequest];
request.reqId = task.taskIdentifier;
[task resume];
}
내가 말했듯이, 모든 와이파이 통해 작동, 응용 프로그램이 백그라운드로 전환하고, 몇 분 후, 사용자 정의 블루투스 장치가 일부 데이터를 보내고 일시 중단 모드에서 응용 프로그램을 깨 웁니다. iOS 응용 프로그램에서 데이터를 수신 한 후 장치가 3G를 통해 연결되어 있으면 데이터를 서버로 보내지 못합니다. 나는 그것이 로컬 데이터베이스에 저장되어 있기 때문에 블루투스를 통해 전송 된 데이터가 수신된다는 점에 긍정적이다.
또 다른 중요한 사실 하나가 있습니다. 응용 프로그램이 Xcode를 통해 실행되는 경우 장치가 3G를 통해 연결되어 있어도 응용 프로그램은 백그라운드에서 데이터를 보냅니다. 이렇게하려면 앱을 실행 한 다음 홈 버튼을 탭하여 앱을 배경으로 설정합니다.
차이점은 무엇이며 Mac에 케이블을 연결하면 앱이 다르게 작동하는 이유와 3G (또는 2G)를 통해 데이터가 전송되지 않는 이유를 모르십니까?
추가 정보 :
나는 파일을 업로드하려고 아니라, 단지 서버에 JSON을 보낼 수 없습니다입니다.
기기에 블루투스 데이터가 얼마나 남았습니까? – CodeChanger
@ CodeChanger 앱이 5 분 이내에 블루투스에서 데이터를 가져 오는 중입니다. 나는 로컬 sqlite 데이터베이스에 저장하기 때문에 블루투스에서 데이터를 받았다고 확신한다. – Whirlwind
알았어. 3.0 분 이후에 내 지식에 따라 앱이 일시 중지되었으므로 해당 모드를 처리하고 bgTask를 사용하여 서비스에 전화해야합니다. – CodeChanger