비컨 (iOS 장치)을 테스트하는 동안 예상치 못한 동작을하는 수신기 비컨을 발견했습니다. locationManager : didEnterRegion 비컨이 영역에 들어갔더라도 메서드가 호출되지 않습니다. 하지만 locationManager : didRangeBeacons : inRegion :이 올바르게 호출되고 감지 된 비콘이 표시됩니다. 아무도 이런 경험이 없었습니까?locationManager : 비컨 탐지시 didEnterRegion이 호출되지 않음
답변
테스트의 시작 조건에 대해 자세히 설명하지 않고 똑같은 것을 본다면 말하기 어렵습니다. 그러나 특정 사례에서 locationEnter : getRangeBeacons : inRegion이 locationManager : didEnterRegion을 호출하지 않고도 호출되는 것을 보았습니다.
동일한 지역에서 동시에 거리 측정 및 모니터링을 시작한 경우 iOS에서 모니터 된 지역의 이 이미이라고 생각하면 locationManager : didEnterRegion을 호출하지 못할 수 있습니다.
- 당신이 지역에없는 있는지 확인하십시오 :
정말 뭔가 어긋 경우, 당신은 당신이 테스트 케이스를 설정해야합니다 테스트합니다.
- 하자 아이폰 OS는
- 시작
- 는 아이폰 OS가 몇 분
- 지역을 입력 동안 계속하자 그 지역을 모니터링 몇 분 동안 실행합니다. 당신을 locationManager를 호출받을 경우
- 참조 : didEnterRegion
를 여전히 위를 통과 한 후 전화를하지 않으면, 뭔가 분명히 잘못된 것입니다.
내가 전송을 시작했다는 것은 수치 스럽다. 이 경우에는 .. 전화해야 겠어? 일단 내가 전송을 중지하고 다시 전송을 시작하여 지역에서 빠져 나왔다면, 예상대로 작동했다 (didEnterRegion이 호출 됨). –
* 당신이이 지역에 들어온 것으로 생각하면 상관 없습니다. :) 중요한 것은 iOS LocationManager가 생각하는 것이며, 현재 상태는 보이지 않습니다. 이미 모니터링을 시작할 때 정의한 지역에 이미 있다고 생각하지 않도록 100 % 확신해야합니다. 이미 지역에 있다고 생각하면 콜백을받지 못할 수도 있습니다. 이것이 위의 절차를 제안한 이유입니다. 테스트가 시작될 때 iOS가 사용자를 지역 외부로 인식하도록합니다. – davidgyoung
다른 방법으로 묻습니다 ...보고하는 문제가 반복적이라면 의견에서 말하는 내용과 원래 게시물에서 작동하지 않는 내용의 차이점은 무엇입니까? 휴대 전화를 재부팅 하시겠습니까? 오랜 시간을 기다리고 있니? 실패를 반복하려면 무엇이 필요합니까? – davidgyoung
방법이 다음과 같은 방식으로 구현되어 있는지 확인하십시오. viewDidLoad
에서 는 최종 개시 모니터링 후
self.beaconRegion.notifyOnEntry=YES;
self.beaconRegion.notifyOnExit=YES;
self.beaconRegion.notifyEntryStateOnDisplay=YES;
[self.locationManager startMonitoringForRegion:self.beaconRegion];
에서 moniotoring 시작 정의 된 영역에 대한 상태 요청
- (void) locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region
{
[self.locationManager requestStateForRegion:self.beaconRegion];
}
상태가 결정된 후, 레인 징 시작 비컨
-(void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
if (state == CLRegionStateInside)
{
//Start Ranging
[manager startRangingBeaconsInRegion:self.beaconRegion];
}
else
{
//Stop Ranging here
}
}
및 구현 귀하의 필요에 따라 다음 방법 ...
- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region
{
[email protected]"Entered region";
}
-(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
[email protected]"Exited region";
}
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
if(beacons.count>0)
{}
}
희망이 있으면 문제가 해결 될 것입니다.
before starting coding in project , you must follow given setup guidlines -->
1. in project info or info.plist -->
Custom IOS Target Properties -->
. add "Required background modes"
. in this add two items -->
."App shares data using CoreBluetooth"
."App registers for location updates"
2. in project Capability -->
There is Background Modes
. check "Loaction update"
. check "Acts as a Bluetooth LE accessory"
. check "uses bluetooth LE accessories"
(. 씨 Davidgyoung에 의해 주어진 지시 사항을 따르 않는 날 믿어, 그것은 확실히 작동합니다.)
좋은 답변입니다. 나를 위해 일해주세요. –
앱이 BLE 중앙 기기 인 경우 필요한 배경 모드에서 'CoreBluetooth를 사용하는 앱 통신'을 설정해야합니다. 앱이 BLE 주변 기기 인 경우 'CoreBluetooth를 사용하는 앱 공유 데이터'를 설정해야합니다. – mezulu
당신은 또한 당신이 지역을 모니터링하는 것을 인식 할 필요가 -없는 특정 비컨.
그래서 당신은 당신이 두 가지 상황에서만 통지를하지 얻을 것 같은 proximityUUID
을 공유하는 3 개 비콘을 가지고 해당 지역은 (전공 및 부전공 값없이) 만 proximityUUID
로 정의 된 경우 :
없음 비콘을에서 (
didExitRegion:
) 지역은 이 지역에서하나 이상의 비콘 범위에 있었다 (
발견됩니다 범위와 첫번째 비콘/비콘에 있었다 그들은 모두 ~ 30 초 동안 시야 밖으로 갔다didEnterRegion:
)
이 도움이되었습니다. 감사. –
- 1. didEnterRegion이 iOS에서 호출되지 않음
- 2. iOS 7 didEnterRegion이 전혀 호출되지 않음
- 3. iOS : CLLocationManager의 didEnterRegion이 호출되지 않았습니다.
- 4. 신호 탐지시 iPhone4S 이상한 동작
- 5. 비컨 도구에 비컨 등록 비컨
- 6. LocationManager 일치하지 않음
- 7. 코어 위치 didEnterRegion이 작동하지 않았습니다.
- 8. locationManager : didEnterRegion과 didExitRegion이 호출되지 않습니다. iBeacon
- 9. locationManager : didExitRegion : 화면이 꺼져있을 때 호출되지 않습니다.
- 10. didEnterRegion 및 startRangingForBeacons가 호출되지 않음
- 11. Android onLocationChanged가 호출되지 않음
- 12. Android OnLocationChanged가 호출되지 않음
- 13. 스위프트 2 백그라운드에서 비컨 스캔
- 14. 프레임 워크의 백그라운드에서 비컨 감지
- 15. locationManager : 화면이 꺼져있을 때 didEnterRegion 메소드가 호출되지 않습니다.
- 16. IOS에서 비컨 크래시 10
- 17. didEnterRegion이 여러 번 트리거 됨
- 18. 을 locationManager requestLocationUpdates는
- 19. Google지도 v2 - Android Studio - OnLocationChanged가 호출되지 않음
- 20. 가장 가까운 비컨 찾기
- 21. LocationManager Provider
- 22. Android Widget 서비스 클래스 바인딩이 호출되지 않음 제공자별로 호출되지 않음
- 23. 슬롯 기능이 호출되지 않음
- 24. didAddAnnotationViews가 항상 호출되지 않음
- 25. BroadcastReceiver가 호출되지 않음
- 26. onPageScrolled()가 호출되지 않음
- 27. applicationDidBecomeActive가 전혀 호출되지 않음
- 28. 안드로이드에서 onDrawFrame이 호출되지 않음
- 29. $ webservice에서 .post가 호출되지 않음
- 30. 대리자 메서드가 호출되지 않음
문제가 발생한 후 1,5 일. 문제는 비행기 모드 때문이었습니다. 비행기 모드가 켜져 있으면 iBeacon은 완벽하게 작동하지만 모니터링하지 않습니다. 나는 그 지역에 들어간 후에 아무런 오류가 없거나 무엇이든지 – bpolat