我试图使用新的Tecnology:Beacon。我使用Jaalee信标,我用Android编程。我的问题是:当我第一次使用信标时,我使用扫描所有设备的方法,但我的个人设备总是出现(我认为这是正常的)为此我尝试添加此在ArrayList中。 但是当我想读取这个arrayList时它是空的,因为我认为扫描它没有完成。
bledevice = new ArrayList<BLEDevice>();
beaconManager.setDeviceDiscoverListener(new DeviceDiscoverListener() {
@Override
public void onBLEDeviceDiscovered(final BLEDevice device) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.i("Jaalee", " Bluetooth discovered:" + device.getMacAddress());
logToDisplay("Beacon trovato: \n " +
"MAC " + device.getMacAddress() + "\n" +
"Nome " + device.getName() + "\n" +
"RSSI " + device.getRssi() + "\n");
bledevice.add(device);
}
});
}
});
for (BLEDevice item : bledevice) {
Log.i("LIST"," check :" + item.getMacAddress());
logToDisplay(item.toString());
}
在我看来,我应该使用Java中的CallBack,但我不知道是否有正确的方法。
答案 0 :(得分:0)
我认为你应该看看AsyncTask及其方法onPreExecute,doInBackground和onPostExecute。
因此,您可以在doInBackground()中添加数据,然后在onPostExecute中运行循环。