2014-03-12 1 views

답변

3

,이 같은 코드를 사용하여 수행 할 수 있습니다 :

try { 
    iBeaconManager.setForegroundScanPeriod(1100l); // 1100 mS 
    iBeaconManager.setForegroundBetweenScanPeriod(0l); // 0ms 
    iBeaconManager.updateScanPeriods(); 
    } 
    catch (RemoteException e) { 
    Log.e(TAG, "Cannot talk to service"); 
    } 

위의 코드는 1100ms를 지속하고 스캔 사이 에선 0ms 기다릴 스캔을 설정합니다. 이는 기본 동작입니다.

스캔 속도를 줄이려면 일반적으로 betweenScanPeriod을 0이 아닌 값 (예 : 30 초)으로 설정하십시오. 이렇게 할 때 scanPeriod을 iBeacons가 브로드 캐스팅하는 간격 이상으로 설정해야합니다. 일반적으로 1Hz 속도로 iBeacons 광고를 수신하는 데 1100ms가 충분합니다.

try { 
    iBeaconManager.setForegroundScanPeriod(1100l); // 1100 mS 
    iBeaconManager.setForegroundBetweenScanPeriod(30000l); // 30,000ms = 30 seconds 
    iBeaconManager.updateScanPeriods(); 
    } 
    catch (RemoteException e) { 
    Log.e(TAG, "Cannot talk to service"); 
    } 

그것은 iBeaconManager에이 같은 설정, 전경 하나, 그리고 배경에 대해 하나의 사실이 있음을 주목할 필요가있다. 앱을 배경으로 스캔 할 때 일반적으로 스캔 횟수를 줄이기를 원하기 때문에 이는 편의를위한 것입니다.

가 자동으로 전경 또는 배경 모드로 응용 프로그램을 넣어 위의 빌드 Pro version of the Android iBeacon Library 있습니다
try { 
    iBeaconManager.setBackgroundMode(myActivity, true); 
    } 
    catch (RemoteException e) { 
    Log.e(TAG, "Cannot talk to service"); 
    } 

: 당신은 전경과 배경 설정을 모두 지정하거나 기본값을 사용하든, 당신은 백그라운드 모드 설정을 활성화 할 수 있습니다 활동이 표시되는지 여부에 따라 이것은 Android에서 백그라운드 절전을 설정하는 가장 쉬운 방법입니다.

+0

어디에서 호출해야합니까? iBeaconManager.setBackgroundMode (myActivity, true); 내 mainActivity? – jjLin

+0

myActivity 란 무엇입니까? 현재 활동 또는 시작하려는 활동? – jjLin

+0

myActivity는 IBeaconManager에 바인딩 된 사용중인 Android 활동 (또는 응용 프로그램 또는 서비스)입니다. 묶여있는 Activity 내에서 전화를 걸면 'myActivity'를 'this'로 바꿉니다. – davidgyoung