0
私は
サービスクラスを拡張するクラスでライブラリalbeacon
と私のビーコンをスキャンしています
public class BeaconActivity extends Service implements BeaconConsumer{}
私の質問は以下のとおりです。
の1-どこ/停止を開始しますこのサービス?私はアプリのスキャンをしたい場合
startService(new Intent(getApplicationContext(), BeaconActivity.class));
stopService(new Intent(getApplicationContext(), BeaconActivity.class));
2 - すべての時間は、私はいくつかのボタンを使用して、このサービスを停止/起動することはできますか?
スタートボタンが
...アプリ開始スキャンを押したとき、これは私のクラスである:public class BeaconActivity extends Service implements BeaconConsumer {
BeaconManager beaconManager;
private static final String UUID1 = "B9407F30-F5F8-466E-AFF9-25556B57FE6D";
private static final String Major1 = "14152";
public static boolean isInBeaconRegion =false;
int value, id,distance;
String beaconMinor;
public void onCreate() {
super.onCreate();
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().clear();
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
// 5 seconds
beaconManager.setBackgroundBetweenScanPeriod(8000l);
beaconManager.setForegroundBetweenScanPeriod(8000l);
beaconManager.bind(this); }
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// -- continue running until it is stopped --
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
return START_STICKY; }
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show(); }
@Override
public void onBeaconServiceConnect() {
beaconManager.addRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> collection, Region region) {
for (int i = 0; i < collection.size(); i++) {
final Beacon beacon = collection.iterator().next();
// -- Get Beacon UUID --
String UUID2 = beacon.getId1().toString().toUpperCase();
// -- Get Beacon Minor --
String Major2 = beacon.getId2().toString();
if (UUID2.equals(UUID1) && Major2.equals(Major1)) {
// -- Get Beacon Minor --
beaconMinor = beacon.getId3().toString();
//Check the minor
} } }
});
try {
beaconManager.startRangingBeaconsInRegion(new Region("B9407F30-F5F8-466E-AFF9-25556B57FE6D", null, null, null));
} catch (RemoteException e) {
} }
です。しかし、ユーザーが(スキャン開始)を押して、彼の周りにビーコンがいなければどうでしょうか?この警告をどこに置くことができますか? - 私のクラスが添付されています – Abrar