[英]Correct layout to detect Kontakt Beacon on Android with AltBeacon
[英]Detect list of beacon with Altbeacon
我正在嘗試使用Android信標庫獲取附近的信標列表。 我一直在跟蹤此示例,但是作為一個新手,我覺得它太復雜了。 我不想在backgroun中檢測信標,我不想檢測區域條目...我只想擁有實際可見信標的列表。 在我的MainActivity類的onCreate方法中,我剛剛添加了這段代碼,並希望這將開始進行范圍調整或監視,但是這沒有發生。 是否有人知道問題所在或如何使用這兩個類?
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
MonitoringActivity monitoringActivity = new MonitoringActivity();
RangingActivity rangingActivity = new RangingActivity();
}
@Override
如果您只想獲取可見信標的列表,則想進行信標“范圍調整”。 您無需使用示例中提到的兩個單獨的Activity類。 您可以僅將Ranging示例的相關部分復制到自己的Activity中。
這樣做:
從您的類中刪除對MonitoringActivity
和RangingActivity
的引用。
將以下內容添加到您的課程中:
將您的類定義更改為:
public class MainActivity extends AppCompatActivity implements BeaconConsumer {
將以下代碼添加到您的onCreate
方法中:
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
// To detect proprietary beacons, you must add a line like below corresponding to your beacon
// type. Do a web search for "setBeaconLayout" to get the proper expression.
// beaconManager.getBeaconParsers().add(new BeaconParser().
// setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
beaconManager.bind(this);
將以下方法添加到您的類中:
@Override
public void onBeaconServiceConnect() {
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for (Beacon beacon : beacons) {
Log.i("MainActivity", "I see a beacon that is about "+beacon.getDistance()+" meters away.");
}
}
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null));
} catch (RemoteException e) { }
}
可見信標的列表是在for (Beacon beacon : beacons)
行內訪問的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.