2016-08-15 3 views
3

나는 alt.beacon 라이브러리를 사용하고 지금은이 경고를 얻을 :setRangeNotifier (RangeNotifier)가 사용되지 않으셨습니까?

warning: [deprecation] setRangeNotifier(RangeNotifier) in BeaconManager has been deprecated. 

을하지만 대체 무엇인가? 지역 및 콜백 RangeNotifier에서 비컨을 범위 지정해야하는데이 기능을 구현하는 것이 중요합니다.

public interface RangeNotifier { 
    void didRangeBeaconsInRegion(Collection<Beacon> var1, Region var2); 
} 

누구나 새로운 라이브러리가 어떻게 작동 할 예정입니까?

xx!

답변

4

버전 2.9부터는 RangeNotifier이 두 개 이상일 수 있습니다. 그래서 대신 전화 :

beaconManager.setRangeNotifier(rangeNotifier); 

을 간단히 전화 :

beaconManager.addRangeNotifier(rangeNotifier); 
+0

그것은) ( beaconManager.removeAllRangeNotifiers를 호출하는 지적 가치가있을 수 있습니다; 을 다시 추가하기 전에는 상식입니다. 범위 알림을 단편에서 설정 중이며 탐지를 모니터링해야하는 모든 활동에 추가 할 수 있습니다. 범위 알림을 지우지 않으면 추가 한 모든 rangeNotifier에 대한 범위 결과를 얻게됩니다. 앱 주위를 탐색 할 때 많은 양이 될 수 있습니다. – WallyHale

+0

좋은 소식은 필요하지 않아야한다는 것입니다. rangeNotifiers 컬렉션은 Set :'protected final Set rangeNotifiers = new CopyOnWriteArraySet <>();'으로 정의됩니다. 그래서 동일한 노티 파이어를 여러 번 추가하면 이미 존재하는 노티 파이어를 대체해야합니다. – davidgyoung

+0

Hmmmmm .. 그게 나를위한 것 같지 않습니다. 동일한 단편은 다양한 활동에 추가됩니다. 그리고 메뉴 (비컨 탐지)에서 활동 (비콘 탐지)으로 돌아가서 다시 5 번 말하면 초당 5 번 범위 트리거가됩니다. 동일한 알림이 코드가 변경되지 않았으므로 UI에서 신호를 표시 할 때 getActivity 참조 만 다를 수 있습니다. 이렇게하면 알리미가 바뀌고 고유하게 나타 납니까? – WallyHale

관련 문제