Я хочу отобразить текущее расстояние, вычисленное функцией getDistance() из библиотеки AltBeacon на выбранных маяках.Обновить расстояние до выбранного устройства iBeacon с помощью библиотеки Altbeacon на Android
Например, у меня есть 3 маяка в радиусе действия и 2 из них сохранены в SavedBeacons - это коллекция объектов маяков. Есть маяки, которые Пользователь выбрал из функции public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region)
.
Я бы хотел отобразить их (только выбранные) с автоматическим 1-секундным обновлением на текущем расстоянии.
Теперь выход - это только информация о маяках и расстояние, сохраненное на момент добавления в SavedBeacons Collection. Его расстояние не обновляется.
Вот мой класс с активностью, чтобы показать выбранные маяки:
public class SelectBeacon extends Activity {
private ListView listview;
private AdapterBeaconDevices bAdapter;
private TextView noBeaconsFound;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_beacon);
this.bAdapter = new AdapterBeaconDevices(this, SavedBeacons);
listview = ((ListView) findViewById(R.id.listView2));
listview.setAdapter(bAdapter);
noBeaconsFound = (TextView) findViewById(R.id.empty2);
SetEmptyButtonVisiblity(SavedBeacons.size());
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
//nothing yet
}
});
refresh();
}
private void refresh(){
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(SelectBeacon.this, "test_refresh_msg",
Toast.LENGTH_LONG).show();
bAdapter.notifyDataSetChanged();
handler.postDelayed(this, 1000);
}
}, 1000);
}
private void SetEmptyButtonVisiblity(final int a)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
if (a == 0) {
noBeaconsFound.setVisibility(View.VISIBLE);
} else {
noBeaconsFound.setVisibility(View.GONE);
}
}
});
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
}
Где ваш код получает ответный сигнал маякового маяка? Нам нужно посмотреть, как эти данные обрабатываются. – davidgyoung