私は、アプリケーションに使用可能なすべてのエッジストーンビーコンを表示しようとしています。私はこのアプリケーションをテストするために2つのエッジストーンを持っています。 .i私はアプリを開くときにsametimeの両方のビーコンを表示したい(-57ビーコンと-69ビーコン)。私は以下のcode.previouslyを使用してこれを投稿し、適切な答えを得ていない。重複するエッジストーンスキャンの結果を防ぐ方法
私はあなたが検出されたデバイスのユニークなリストを維持する必要がトップ
txpowerArray= new ArrayList<String>();
urlArray=new ArrayList<String>();
private BluetoothAdapter.LeScanCallback mLeScanCallback =new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device,final int rssi,final byte[] scanRecord)
{
new Thread()
{
public void run()
{
RangingActivity.this.runOnUiThread(new Runnable()
{
public void run()
{
connect(rssi, scanRecord,device);
}
});
}
}.start();
}
};
public void connect(int rssi, byte[] scanRecord,BluetoothDevice device){
List<ADStructure> structures =
ADPayloadParser.getInstance().parse(scanRecord);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
for (ADStructure structure : structures)
{
if (structure instanceof EddystoneURL)
{
EddystoneURL es = (EddystoneURL)structure;
Log.d("Eddy", "Tx Power = " + es.getTxPower());
Log.d("Eddy", "URL = " + es.getURL());
clickUrl=es.getURL().toString();
txpower=String.valueOf(es.getTxPower());
txpowerArray.add(txpower);
urlArray.add("" + clickUrl);
Log.d("devicelist", " "+url+" "+txpower);
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}else {
}
}
}
}, 4000);