현재 Android Studio에서 iBeacons을 감지하고 사용하는 Android 앱을 개발 중입니다. 비컨을 감지하고 매개 변수를 가져야하는 부분이 완료되었지만 Android 시스템에서 사용할 수있는 API를 사용하여 특정 iBeacon에 대해이 매개 변수의 값을 변경하는 문제에 직면하고 있습니다. 필자는 setId1 (UUID), setId2 (Major), setId3 (Minor) 같은 Beacon.Builder() 클래스의 여러 함수를 사용하여 값을 수정할 수 있지만 사용 방법을 알기 위해 약간의 손실이 있음을 확인했습니다. 이 기능은 특정 신호에서 작동합니다.Android의 SDK 덕분에 iBeacon의 매개 변수 (UUID, Major, Minor, TxPower) 값을 변경하는 방법
String distance = String.valueOf(beacons.iterator().next().getDistance());
String Uuid = String.valueOf(beacons.iterator().next().getId1());
String major = String.valueOf(beacons.iterator().next().getId2());
String minor = String.valueOf(beacons.iterator().next().getId3());
String Rssi = String.valueOf(beacons.iterator().next().getRssi());
String TxPower = String.valueOf(beacons.iterator().next().getTxPower());
arrayIdBeacon.clear();
arrayIdBeacon.add(new IdBeacon(Uuid,major,minor,distance,Rssi,TxPower));
그리고이 :
class IdBeacon {
private String UUID;
private String Major;
private String Minor;
private String Distance;
private String RSSI;
private String TxPower;
public IdBeacon (String UUID, String Major, String Minor, String Distance, String RSSI, String TxPower){
this.UUID = UUID;
this.Major = Major;
this.Minor = Minor;
this.Distance = Distance;
this.RSSI = RSSI;
this.TxPower = TxPower;
}
public String getUUID() { return UUID; }
public void setUUID(String UUID) { this.UUID = UUID; }
public String getMajor() { return Major; }
public void setMajor(String major) { Major = major; }
public String getMinor() { return Minor; }
public void setMinor(String minor) { Minor = minor; }
public String getDistance() { return Distance; }
public void setDistance(String distance) { Distance = distance }
public String getRSSI() { return RSSI; }
public void setRSSI(String RSSI) { this.RSSI = RSSI; }
public String getTxPower() { return TxPower; }
public void setTxPower(String txPower) { this.TxPower = txPower; }
}
이것은 아이 비콘의 매개 변수의 서로 다른 값을 얻을 수있는 코드는 다음과 같습니다
이
내가 비컨을 위해 만든 내 클래스의 정의입니다 내보기에 대한 내 iBeacon 매개 변수 표시를 처리 할 ArrayAdapter 선언입니다.public BeaconAdapter(Context context, ArrayList<IdBeacon> idBeacons){
super(context, 0,idBeacons);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
IdBeacon beacon = getItem(position);
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.mylist, parent, false);
}
TextView tvUuid = (TextView) convertView.findViewById(R.id.ValUUID);
TextView tvMajor = (TextView) convertView.findViewById(R.id.ValMajor);
TextView tvMinor = (TextView) convertView.findViewById(R.id.ValMinor);
TextView tvDist = (TextView) convertView.findViewById(R.id.ValDist);
TextView tvRSSI = (TextView) convertView.findViewById(R.id.ValRSSI);
TextView tvTxPower = (TextView) convertView.findViewById(R.id.tvTxPower);
if (beacon != null){
tvUuid.setText(beacon.getUUID());
tvMajor.setText(beacon.getMajor());
tvMinor.setText(beacon.getMinor());
tvDist.setText(beacon.getDistance());
tvRSSI.setText(beacon.getRSSI());
tvTxPower.setText(beacon.getTxPower());
}
return convertView;
}