發出求救信號~
我有一個Hashtable<Key,Values>
裡面的Values一直更新
想要判斷Values連續10次相同就remove掉這個device的array
我有寫出大概意思的code不過不知道怎麼下手,因我的mRssi會一直更新
public ArrayList<BluetoothDevice> mLeDevices = new ArrayList<BluetoothDevice>();
public ArrayList<byte[]> mRecords = new ArrayList<byte[]>();
public Hashtable<String, Integer> mRssi = new Hashtable<>();
public void addDevice(BluetoothDevice device, int rssi, byte[] scanRecord) {
if (!mLeDevices.contains(device)) {
mLeDevices.add(device);
mRecords.add(scanRecord);
}
mRssi.put(device.getAddress(), rssi);
/** 以下為意識code */
ArrayList<Integer> rssiArrayList = new ArrayList<Integer>(mRssi.values());
int lastNum = rssiArrayList.get();
int count = 0;
/** 從頭開始loop */
for (int i = 0; i < rssiArrayList.size(); i++) {
/** 如果當前值等於最後值 */
if(rssiArrayList[i]==lastNum){
count++;
if(count>=10){
/** 如果連續10次rssi相同就移除 */
mLeDevices.remove();
}
}
/** 如果不相等的話 */
else {
lastNum=rssiArrayList[i];
count = 1;
}
}
Log.e("mRssi", String.valueOf(mRssi));
}