Обикновено отнема 1 секунда за ново сканиране.
Ако сканирането е 1 секунда, може да не правя твърде много неща, ако искам да анализирам данните.
Как да променя тази стойност?
Освен това, за фоновата услуга, как да променя стойността на freq?
Обикновено отнема 1 секунда за ново сканиране.
Ако сканирането е 1 секунда, може да не правя твърде много неща, ако искам да анализирам данните.
Как да променя тази стойност?
Освен това, за фоновата услуга, как да променя стойността на freq?
Ако искате да промените интервала на сканиране по подразбиране на Android iBeacon Library, можете да го направите с код като този:
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
на ненулева стойност, например 30 секунди. Когато направите това, трябва да зададете scanPeriod
да бъде поне интервалът, който излъчват вашите iBeacons -- 1100ms обикновено са достатъчни, за да уловят рекламите на iBeacons с честота 1Hz.
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
, една за преден план и една за заден план. Това е само за удобство, тъй като обикновено искате сканирането да се извършва по-рядко, когато приложението ви е във фонов режим. Независимо дали персонализирате както настройките за преден план, така и за фон или приемате настройките по подразбиране, можете да активирате настройките за фонов режим с:
try {
iBeaconManager.setBackgroundMode(myActivity, true);
}
catch (RemoteException e) {
Log.e(TAG, "Cannot talk to service");
}
Има и Pro версия на Android iBeacon Library, която се основава на по-горе, за да поставите приложението си автоматично в режим на преден или заден план в зависимост от това дали дадено действие се вижда. Това е най-лесният начин да настроите фоново спестяване на енергия на Android.
Опитвам се да изпълня избран случай, когато клетка се промени в диапазон, за да изпълни макрос, когато се въведе конкретен текст. Това работи за една клетка (и кода, който следва) за "F50", но когато се опитам да използвам същия стил на код няколко реда по-късно, не работи.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F50")) Is Nothing Then
Select Case Range("F50")
Case "MPR-9A": Resize9
Case "MPR-8A": Resize8
Case "MPR-6A": Resize6
Case "MPR-3A": Resize3
End Select
End If
If Not Intersect(Target, Range("F4:F45")) Is Nothing Then
Select Case Range("F4:F45")
Case "M-20A": M20A
Case "M-2X20A": M2X20A
Case "M-20A-SP": M20ASP
End Select
End If
End Sub
Опитвам се да стартирам този код, когато поставям нова стойност някъде в диапазона F4:F45. Когато тази стойност бъде въведена, случаят проверява кой макрос да се изпълни. Макросите копират диапазон на друг лист и го поставят в клетката, която току-що е задействала макроса (която също включва няколко клетки отдясно и отдолу), и тези макроси работят добре, когато ги задействам ръчно.
Тръгнах по пътя на копиране/поставяне, защото се отказах от план А, който се опитваше да обедини клетката, която току-що е получила новата стойност, с 1 или 3 под нея и след това да въведа текст в клетките точно вдясно. Ако трябва да се върна към изпробването на този маршрут, ще се радвам да опитам да избегна копирането и поставянето.
- person jjLin; 13.03.2014