Как вернуть все записи, выбранные двумя аргументами?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как вернуть все записи, выбранные двумя аргументами?

Сообщение Anonymous »

Моя таблица:



ID
SSID
BSSID
RSSI




1
abcd
hs:hd:sd
-60


2
abcd
hs:hd:po
-68



Существует около 5000 записей с одинаковым SSID, разными значениями BSSID и LEVEL. Мое устройство сканирует сети Wi-Fi на предмет MAC-адреса и RSSI. Я выбираю 3 по самому высокому RSSI. Как найти записи со значением LEVEL, равным или близким к 60, например 59, 58 и 61? И как мне вернуть все записи с одинаковыми MAC-адресами и значениями RSSI?
Я пытаюсь сравнить 3 сканирования с помощью getRequiredData(). Я хочу передать ему параметры Mac-адрес и уровень и найти записи с одинаковым значением для обоих параметров. Код компилируется, но вылетает при первом сканировании. Почему?
public Cursor getRequiredData(String mac, int level){
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("SELECT BSSID, RSSI FROM TABLE_NAME WHERE BSSID =? AND RSSI=?", new String[] {mac, level});
return res;
}

Сканируемая часть:
class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
sb = new StringBuilder();
Comparator comparator = new Comparator() {
@Override
public int compare(ScanResult o1, ScanResult o2) {
return (o1.level>o2.level ? -1 : (o1.level==o2.level ? 0 : 1));
}
};
lista = wifiManager.getScanResults();
Collections.sort(lista, comparator);
for (int i = 0; i < lista.size(); i++) {
scanResult = wifiManager.getScanResults().get(i);
sb.append(new Integer(i + 1).toString() + ". " + (lista.get(i)).SSID + " " + (lista.get(i)).BSSID + " " + (lista.get(i)).level + "\n");
boolean isInserted = myDb.insertData(lista.get(i).SSID.toString(), lista.get(i).BSSID.toString(), lista.get(i).level);
if (isInserted = true)
Toast.makeText(MainActivity.this, "Data inserted", Toast.LENGTH_LONG).show();
else
Toast.makeText(MainActivity.this, "Data not inserted", Toast.LENGTH_LONG).show();
}
for (int i=0; i>>>> Dumping cursor android.database.sqlite.SQLiteCursor@e1a86d1
0 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}
1 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}
2 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}
3 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}
4 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}
5 {
BSSID=f4:c5:ed:5c:s6:20
RSSI=-69
}


Подробнее здесь: https://stackoverflow.com/questions/536 ... -arguments
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»