я ве застрял со временем на некоторое время, так что я решил использовать AlarmManager, но я м перед проблемой, На самом деле я хотел быКак проверить AlarmManager для повторения всего 5 раз
Wi-Fi сканирования и вставлять в SQlite каждые 3 секунды в 5 раз, когда заканчивается на пятом, фактически выбирайте avg (из Wi-Fi-сигнала) из sqlite).
После отображения значения avg система продолжит выполнение сканирования в 1. снова, система остановится, пока пользователь не нажмет кнопку остановки.
Но дело в том, что я не знаю, как использовать AlarmManager таким образом.
Пожалуйста, кто-нибудь рекомендует меня. Спасибо.
(извините за неорганизованный код) Вот мой грубый код:
long repeatTime = 1000*3;
String fullinfo;
final public static String ONE_TIME = "onetime";
AlarmManager am ;
PendingIntent pi;
public void onReceive(Context context, Intent intent) {
PowerManager pm = (PowerManager) context
.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
wl.acquire();
WifiManager wifiMan = (WifiManager) context
.getSystemService(Context.WIFI_SERVICE);
wifiMan.startScan();
List<ScanResult> resultList = wifiMan.getScanResults();
int foundCount = resultList.size();
Toast.makeText(context, "Scan done, " + foundCount + " found",
Toast.LENGTH_SHORT).show();
ListIterator<ScanResult> results = resultList.listIterator();
fullinfo = "Scan Results : \n";
String[][] wifi_info = new String[foundCount - 1][3];
for (int i = 0; i <= foundCount - 1; i++) {
while (results.hasNext()) {
ScanResult info = results.next();
wifi_info[i][0] = "\nName: " + info.SSID + "\n";
wifi_info[i][1] = ";Mac: " + info.BSSID + "\n";
wifi_info[i][2] = ";Signal: " + info.level + "\n";
fullinfo = fullinfo + wifi_info[0][0] + wifi_info[0][1]
+ wifi_info[0][2];
}// end while
}// end for
Bundle extras = intent.getExtras();
StringBuilder msgStr = new StringBuilder();
if (extras != null && extras.getBoolean(ONE_TIME, Boolean.FALSE)) {
msgStr.append("One time Timer : ");
}
Format formatter = new SimpleDateFormat("hh:mm:ss a");
msgStr.append(formatter.format(new Date()));
//insertIntoDatabase();
Toast.makeText(context, "" + fullinfo + "\n" + msgStr + "_"+currentTime,
Toast.LENGTH_SHORT).show();
wl.release();
}
public void SetAlarm(Context context) {
am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context,AlarmManagerBroadcastReceiver.class);
intent.putExtra(ONE_TIME, Boolean.FALSE);
pi = PendingIntent.getBroadcast(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
repeatTime, pi);
}