【发布时间】:2016-01-16 09:16:54
【问题描述】:
我有 3 个 Estimote 信标(Div Kit)。在我的 Android 应用程序中,我试图更改 3 个 TextView 以显示每个信标的主要和次要。我已将信标设置更改为每 1 毫秒发布一次信号,这是最短的时间。
问题是我的BeaconManager 对象只检测到一个信标,并且需要一段时间才能做到这一点。
这是我的代码
App.java
public class App extends Application {
public static BeaconManager mBeaconManager;
@Override
public void onCreate() {
super.onCreate();
mBeaconManager = new BeaconManager(getApplicationContext());
mBeaconManager.setBackgroundScanPeriod(TimeUnit.SECONDS.toMillis(1), 0);
mBeaconManager.connect(new BeaconManager.ServiceReadyCallback() {
@Override
public void onServiceReady() {
mBeaconManager.startMonitoring(new Region(
"monitored region",
UUID.fromString("B9407F30-F5F8-466E-AFF9-25556B57FE6D"),
null, null));
}
});
}
}
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tv = (TextView) findViewById(R.id.tv);
final TextView tv2 = (TextView) findViewById(R.id.tv2);
final TextView tv3 = (TextView) findViewById(R.id.tv3);
App.mBeaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() {
@Override
public void onEnteredRegion(Region region, List<Beacon> list) {
tv.setText(list.get(0).getMajor() + " : " + list.get(0).getMinor());
if (list.size() > 1) {
tv2.setText(list.get(1).getMajor() + " : " + list.get(1).getMinor());
}
if (list.size() > 2) {
tv3.setText(list.get(2).getMajor() + " : " + list.get(2).getMinor());
}
}
@Override
public void onExitedRegion(Region region) {
tv.setText("Exit");
}
});
}
我知道代码可能不专业,但仅用于测试。
【问题讨论】:
标签: android ibeacon ibeacon-android estimote