各ビーコンのRSSI値を更新します。しかし、私はそれを働かせるようには思わない。私は、デバイスホルダーのRSSIを更新するために、地図やHashMapを使用したい:BLEビーコンリストのデバイスのRSSIを更新する方法
private Map<BluetoothDevice, Integer> mDevicesRssi;
これは私のデバイスホルダークラスです:
class DeviceHolder{
BluetoothDevice device;
int rssi;
public DeviceHolder(BluetoothDevice device, int rssi){
this. device = device;
this.rssi = rssi;
}
}
と私のアダプタクラス
private class LeDeviceListAdapter extends BaseAdapter {
private ArrayList<BluetoothDevice> mLeDevices;
private ArrayList<DeviceHolder> mLeHolders;
private LayoutInflater mInflator;
public LeDeviceListAdapter() {
super();
mLeDevices = new ArrayList<BluetoothDevice>();
mLeHolders = new ArrayList<DeviceHolder>();
mInflator = DeviceScanActivity.this.getLayoutInflater();
}
public void addDevice(DeviceHolder deviceHolder) {
if(!mLeDevices.contains(deviceHolder.device)) {
DeviceHolder actualDeviceHolder = new DeviceHolder
mLeDevices.add(deviceHolder.device);
mLeHolders.add(deviceHolder);
}
else {
mDevicesRssi.put(deviceHolder.device, deviceHolder.rssi);
}
mLeDeviceListAdapter.notifyDataSetChanged();
}
私は、次のようなLeDeviceListAdapterクラスのようなArrayを作成しなければならないと思う:
しかし、これはMapが抽象であるというエラーを表示します。 私の質問は:RSSIがリストに更新されるように、誰かがdeviceHolderオブジェクトのrssiを更新するヒントを持っていますか?
他のすべてが正常に動作しているようです。 if条件なしでデバイスを追加するだけで、各広告の新しいデバイスが表示されます(フィルタなし)。
どうもありがとう
Sayus
DeviceHolder actualDeviceHolder = new DeviceHolderが間違っていて、コードの一部と見なすべきではありません!コードの実験の残りの断片... – Sayus