mirror of
https://repository.entgra.net/community/device-mgt-plugins.git
synced 2025-09-16 23:42:15 +00:00
Beacon Scaning
This commit is contained in:
parent
32c4a34283
commit
cd1cf2bf44
@ -1,3 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
package org.wso2.carbon.iot.android.sense.beacon;
|
package org.wso2.carbon.iot.android.sense.beacon;
|
||||||
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
|
|||||||
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.iot.android.sense.beacon;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
public class BeaconScanedData {
|
||||||
|
|
||||||
|
|
||||||
|
private int beaconMajor;// Major
|
||||||
|
private int beaconMinor;//Minor
|
||||||
|
private String beaconProximity;// Proximity
|
||||||
|
private int beaconUuid;// Uuid
|
||||||
|
private long timestamp;// Timestamp
|
||||||
|
|
||||||
|
BeaconScanedData(int beaconMajor, int beaconMinor,String beaconProximity,int beaconUuid) {
|
||||||
|
this.beaconMajor = beaconMajor;
|
||||||
|
this.beaconMinor = beaconMinor;
|
||||||
|
this.beaconProximity = beaconProximity;
|
||||||
|
this.beaconUuid = beaconUuid;
|
||||||
|
timestamp = new Date().getTime();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconMajor() {
|
||||||
|
return beaconMajor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconMajor(int beaconMajor) {
|
||||||
|
this.beaconMajor = beaconMajor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconMinor() {
|
||||||
|
return beaconMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconMinor(int beaconMinor) {
|
||||||
|
this.beaconMinor = beaconMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBeaconProximity() {
|
||||||
|
return beaconProximity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconProximity(String beaconProximity) {
|
||||||
|
this.beaconProximity = beaconProximity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconUuid() {
|
||||||
|
return beaconUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconUuid(int beaconUuid) {
|
||||||
|
this.beaconUuid = beaconUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTimeStamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimeStamp(long timeStamp) {
|
||||||
|
timestamp = timeStamp;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,7 +8,23 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import org.altbeacon.beacon.BeaconConsumer;
|
import org.altbeacon.beacon.BeaconConsumer;
|
||||||
import org.altbeacon.beacon.BeaconManager;
|
import org.altbeacon.beacon.BeaconManager;
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
public class BeaconServiceUtility {
|
public class BeaconServiceUtility {
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
|
|||||||
@ -41,6 +41,10 @@ import android.widget.TextView;
|
|||||||
import org.altbeacon.beacon.BeaconParser;
|
import org.altbeacon.beacon.BeaconParser;
|
||||||
import org.altbeacon.beacon.MonitorNotifier;
|
import org.altbeacon.beacon.MonitorNotifier;
|
||||||
import org.altbeacon.beacon.Region;
|
import org.altbeacon.beacon.Region;
|
||||||
|
import org.wso2.carbon.iot.android.sense.beacon.BeaconScanedData;
|
||||||
|
import org.wso2.carbon.iot.android.sense.util.SenseDataHolder;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import agent.sense.android.iot.carbon.wso2.org.wso2_senseagent.R;
|
import agent.sense.android.iot.carbon.wso2.org.wso2_senseagent.R;
|
||||||
@ -56,6 +60,8 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
private BeaconServiceUtility beaconUtill = null;
|
private BeaconServiceUtility beaconUtill = null;
|
||||||
private BeaconManager iBeaconManager = BeaconManager.getInstanceForApplication(this);
|
private BeaconManager iBeaconManager = BeaconManager.getInstanceForApplication(this);
|
||||||
|
|
||||||
|
BeaconScanedData beaconData;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -66,6 +72,15 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
list.setAdapter(adapter);
|
list.setAdapter(adapter);
|
||||||
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
|
|
||||||
|
iBeaconManager.setRangeNotifier(new RangeNotifier() {
|
||||||
|
@Override
|
||||||
|
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
|
||||||
|
for(Beacon beacon : beacons) {
|
||||||
|
Log.d(TAG, "UUID:" + beacon.getId1() + ", major:" + beacon.getId2() + ", minor:" + beacon.getId3() + ", Distance:" + beacon.getDistance() + ",RSSI" + beacon.getRssi() + ", TxPower" + beacon.getTxPower());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -85,16 +100,22 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
super.onStop();
|
super.onStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBeaconServiceConnect() {
|
public void onBeaconServiceConnect() {
|
||||||
|
|
||||||
iBeaconManager.setRangeNotifier(new RangeNotifier() {
|
iBeaconManager.setRangeNotifier(new RangeNotifier() {
|
||||||
@Override
|
@Override
|
||||||
public void didRangeBeaconsInRegion(Collection<Beacon> iBeacons, Region region) {
|
public void didRangeBeaconsInRegion(Collection<Beacon> iBeacons, Region region) {
|
||||||
|
for (Beacon beacon: iBeacons) {
|
||||||
|
Log.i(TAG, "This beacon has identifiers:"+beacon.getId1()+", "+beacon.getId2()+", "+beacon.getId3());
|
||||||
|
|
||||||
arrayL.clear();
|
|
||||||
arrayL.addAll((ArrayList<Beacon>) iBeacons);
|
}
|
||||||
// adapter.notifyDataSetChanged();
|
|
||||||
|
// arrayL.clear();
|
||||||
|
// arrayL.addAll((ArrayList<Beacon>) iBeacons);
|
||||||
|
// adapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -163,21 +184,26 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
} else {
|
} else {
|
||||||
holder = new ViewHolder(convertView = inflater.inflate(R.layout.tupple_monitoring, null));
|
holder = new ViewHolder(convertView = inflater.inflate(R.layout.tupple_monitoring, null));
|
||||||
}
|
}
|
||||||
if (arrayL.get(position).getId1() != null)
|
holder.beacon_uuid.setText("UUID: " + arrayL.get(position).getId1().toString().toUpperCase());
|
||||||
holder.beacon_uuid.setText("UUID: " + arrayL.get(position).getServiceUuid());
|
|
||||||
|
|
||||||
holder.beacon_major.setText("Major: " + arrayL.get(position).getId1());
|
holder.beacon_major.setText("Major: " + arrayL.get(position).getId2());
|
||||||
|
|
||||||
holder.beacon_minor.setText(", Minor: " + arrayL.get(position).getId2());
|
holder.beacon_minor.setText(" Minor: " + arrayL.get(position).getId3());
|
||||||
|
|
||||||
holder.beacon_proximity.setText("Proximity: " + arrayL.get(position).getId3());
|
double proximity = arrayL.get(position).getDistance();
|
||||||
|
holder.beacon_proximity.setText("Proximity: " + (new BigDecimal(proximity).setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue()));
|
||||||
|
|
||||||
holder.beacon_rssi.setText(", Rssi: " + arrayL.get(position).getRssi());
|
holder.beacon_rssi.setText(" Rssi: " + arrayL.get(position).getRssi());
|
||||||
|
|
||||||
holder.beacon_txpower.setText(", TxPower: " + arrayL.get(position).getTxPower());
|
holder.beacon_txpower.setText(" TxPower: " + arrayL.get(position).getTxPower());
|
||||||
|
|
||||||
holder.beacon_range.setText("" + arrayL.get(position).getDistance());
|
holder.beacon_range.setText("" + arrayL.get(position).getDistance());
|
||||||
|
|
||||||
|
beaconData = new BeaconScanedData(arrayL.get(position).getId2().toInt(), arrayL.get(position).getId3().toInt(),holder.beacon_uuid.toString(),arrayL.get(position).getRssi());
|
||||||
|
SenseDataHolder.getBeaconScanedDataHolder().add(beaconData);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -194,6 +220,7 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
private TextView beacon_txpower;
|
private TextView beacon_txpower;
|
||||||
private TextView beacon_range;
|
private TextView beacon_range;
|
||||||
|
|
||||||
|
|
||||||
public ViewHolder(View view) {
|
public ViewHolder(View view) {
|
||||||
beacon_uuid = (TextView) view.findViewById(R.id.BEACON_uuid);
|
beacon_uuid = (TextView) view.findViewById(R.id.BEACON_uuid);
|
||||||
beacon_major = (TextView) view.findViewById(R.id.BEACON_major);
|
beacon_major = (TextView) view.findViewById(R.id.BEACON_major);
|
||||||
@ -203,6 +230,7 @@ public class MonitoringActivity extends Activity implements BeaconConsumer {
|
|||||||
beacon_txpower = (TextView) view.findViewById(R.id.BEACON_txpower);
|
beacon_txpower = (TextView) view.findViewById(R.id.BEACON_txpower);
|
||||||
beacon_range = (TextView) view.findViewById(R.id.BEACON_range);
|
beacon_range = (TextView) view.findViewById(R.id.BEACON_range);
|
||||||
|
|
||||||
|
|
||||||
view.setTag(this);
|
view.setTag(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import android.util.Log;
|
|||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
import org.wso2.carbon.iot.android.sense.beacon.BeaconScanedData;
|
||||||
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.AndroidSenseMQTTHandler;
|
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.AndroidSenseMQTTHandler;
|
||||||
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.MQTTTransportHandler;
|
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.MQTTTransportHandler;
|
||||||
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.TransportHandlerException;
|
import org.wso2.carbon.iot.android.sense.data.publisher.mqtt.transport.TransportHandlerException;
|
||||||
@ -148,6 +149,21 @@ public class DataPublisherService extends Service {
|
|||||||
}
|
}
|
||||||
SenseDataHolder.resetSpeedDataHolder();
|
SenseDataHolder.resetSpeedDataHolder();
|
||||||
|
|
||||||
|
//retrieve speed data.
|
||||||
|
List<BeaconScanedData> beaconDataMap = SenseDataHolder.getBeaconScanedDataHolder();
|
||||||
|
if (!speedDataMap.isEmpty()) {
|
||||||
|
for (BeaconScanedData beaconData : beaconDataMap) {
|
||||||
|
Event event = new Event();
|
||||||
|
event.setBeaconMajor(beaconData.getBeaconMajor());
|
||||||
|
event.setBeaconMinor(beaconData.getBeaconMinor());
|
||||||
|
event.setBeaconProximity(beaconData.getBeaconProximity());
|
||||||
|
event.setBeaconUuid(beaconData.getBeaconUuid());
|
||||||
|
|
||||||
|
events.add(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SenseDataHolder.resetSpeedDataHolder();
|
||||||
|
|
||||||
//retrieve words
|
//retrieve words
|
||||||
ProcessWords.cleanAndPushToWordMap();
|
ProcessWords.cleanAndPushToWordMap();
|
||||||
List<WordData> wordDatMap = SenseDataHolder.getWordDataHolder();
|
List<WordData> wordDatMap = SenseDataHolder.getWordDataHolder();
|
||||||
|
|||||||
@ -28,6 +28,12 @@ public class Event {
|
|||||||
private static float speed;
|
private static float speed;
|
||||||
private String turn;
|
private String turn;
|
||||||
public static final float SPEED_LIMIT = 60;
|
public static final float SPEED_LIMIT = 60;
|
||||||
|
private int beaconMajor;
|
||||||
|
private int beaconMinor;
|
||||||
|
private int beaconUuid;
|
||||||
|
private String beaconProximity;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private int getBattery() {
|
private int getBattery() {
|
||||||
return battery;
|
return battery;
|
||||||
@ -178,6 +184,9 @@ public class Event {
|
|||||||
return speed;
|
return speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setTurns(String turn) {
|
public void setTurns(String turn) {
|
||||||
|
|
||||||
this.type = "turn";
|
this.type = "turn";
|
||||||
@ -192,6 +201,46 @@ public class Event {
|
|||||||
return turn;
|
return turn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setBeaconMajor(int beaconMajor) {
|
||||||
|
this.type = "beaconMajor";
|
||||||
|
this.beaconMajor = beaconMajor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconMajor() {
|
||||||
|
this.type = "beaconMajor";
|
||||||
|
return beaconMajor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconMinor(int beaconMinor) {
|
||||||
|
this.type = "beaconMinor";
|
||||||
|
this.beaconMinor = beaconMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconMinor() {
|
||||||
|
this.type = "beaconMinor";
|
||||||
|
return beaconMinor;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconUuid(int beaconUuid) {
|
||||||
|
this.type = "beaconUuid";
|
||||||
|
this.beaconUuid = beaconUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBeaconUuid() {
|
||||||
|
this.type = "beaconUuid";
|
||||||
|
return beaconUuid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBeaconProximity(String beaconProximity) {
|
||||||
|
this.type = "beaconProximity";
|
||||||
|
this.beaconProximity = beaconProximity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBeaconProximity() {
|
||||||
|
this.type = "beaconProximity";
|
||||||
|
return beaconProximity;
|
||||||
|
}
|
||||||
|
|
||||||
public JSONObject getEvent() throws JSONException {
|
public JSONObject getEvent() throws JSONException {
|
||||||
JSONObject jsonEvent = new JSONObject();
|
JSONObject jsonEvent = new JSONObject();
|
||||||
JSONObject jsonMetaData = new JSONObject();
|
JSONObject jsonMetaData = new JSONObject();
|
||||||
@ -218,6 +267,12 @@ public class Event {
|
|||||||
jsonPayloadData.put("speed_limit", getSpeed());
|
jsonPayloadData.put("speed_limit", getSpeed());
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
//Beacon
|
||||||
|
jsonPayloadData.put("beacon_major", getBeaconMajor());
|
||||||
|
jsonPayloadData.put("beacon_minor", getBeaconMinor());
|
||||||
|
jsonPayloadData.put("beacon_proximity", getBeaconProximity());
|
||||||
|
jsonPayloadData.put("beacon_uuid", getBeaconUuid());
|
||||||
|
|
||||||
//turn
|
//turn
|
||||||
jsonPayloadData.put("turn_way", getTurns());
|
jsonPayloadData.put("turn_way", getTurns());
|
||||||
//magnetic
|
//magnetic
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import android.content.Context;
|
|||||||
import org.wso2.carbon.iot.android.sense.event.streams.Location.LocationDataReader;
|
import org.wso2.carbon.iot.android.sense.event.streams.Location.LocationDataReader;
|
||||||
import org.wso2.carbon.iot.android.sense.event.streams.Sensor.SensorDataReader;
|
import org.wso2.carbon.iot.android.sense.event.streams.Sensor.SensorDataReader;
|
||||||
import org.wso2.carbon.iot.android.sense.event.streams.Speed.SpeedDataReader;
|
import org.wso2.carbon.iot.android.sense.event.streams.Speed.SpeedDataReader;
|
||||||
|
import org.wso2.carbon.iot.android.sense.beacon.MonitoringActivity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class triggered by service to collect the sensor data.
|
* This class triggered by service to collect the sensor data.
|
||||||
@ -39,6 +40,7 @@ public class SenseDataCollector {
|
|||||||
case SPEED:
|
case SPEED:
|
||||||
dr = new SpeedDataReader(ctx);
|
dr = new SpeedDataReader(ctx);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
if (dr != null) {
|
if (dr != null) {
|
||||||
Thread DataCollector = new Thread(dr);
|
Thread DataCollector = new Thread(dr);
|
||||||
|
|||||||
@ -13,6 +13,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.iot.android.sense.util;
|
package org.wso2.carbon.iot.android.sense.util;
|
||||||
|
|
||||||
|
import org.wso2.carbon.iot.android.sense.beacon.BeaconScanedData;
|
||||||
import org.wso2.carbon.iot.android.sense.event.streams.Location.LocationData;
|
import org.wso2.carbon.iot.android.sense.event.streams.Location.LocationData;
|
||||||
import org.wso2.carbon.iot.android.sense.event.streams.Sensor.SensorData;
|
import org.wso2.carbon.iot.android.sense.event.streams.Sensor.SensorData;
|
||||||
import org.wso2.carbon.iot.android.sense.event.streams.Speed.SpeedData;
|
import org.wso2.carbon.iot.android.sense.event.streams.Speed.SpeedData;
|
||||||
@ -33,7 +34,7 @@ public class SenseDataHolder {
|
|||||||
private static List<LocationData> locationDataHolder;
|
private static List<LocationData> locationDataHolder;
|
||||||
private static List<WordData> wordDataHolder;
|
private static List<WordData> wordDataHolder;
|
||||||
private static List<SpeedData> speedDataHolder;
|
private static List<SpeedData> speedDataHolder;
|
||||||
|
private static List<BeaconScanedData> beaconScanedDataHolder;
|
||||||
|
|
||||||
//LocationData gps;
|
//LocationData gps;
|
||||||
|
|
||||||
@ -80,6 +81,13 @@ public class SenseDataHolder {
|
|||||||
return speedDataHolder;
|
return speedDataHolder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<BeaconScanedData> getBeaconScanedDataHolder(){
|
||||||
|
if(beaconScanedDataHolder == null){
|
||||||
|
beaconScanedDataHolder = new CopyOnWriteArrayList<>();
|
||||||
|
}
|
||||||
|
return beaconScanedDataHolder;
|
||||||
|
}
|
||||||
|
|
||||||
public static void resetSensorDataHolder(){
|
public static void resetSensorDataHolder(){
|
||||||
sensorDataHolder = null;
|
sensorDataHolder = null;
|
||||||
}
|
}
|
||||||
@ -100,5 +108,9 @@ public class SenseDataHolder {
|
|||||||
speedDataHolder = null;
|
speedDataHolder = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void resetBeaconScanedDataHolder() {
|
||||||
|
beaconScanedDataHolder = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,7 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:padding="5dip"
|
android:padding="5dip" >
|
||||||
tools:context=".RangingActivity" >
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
|
|||||||
@ -30,6 +30,13 @@
|
|||||||
android:layout_gravity="bottom|center"
|
android:layout_gravity="bottom|center"
|
||||||
android:layout_height="wrap_content" >
|
android:layout_height="wrap_content" >
|
||||||
|
|
||||||
|
<android.support.design.widget.FloatingActionButton
|
||||||
|
android:id="@+id/beacon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:src="@drawable/beacon"/>
|
||||||
|
|
||||||
<android.support.design.widget.FloatingActionButton
|
<android.support.design.widget.FloatingActionButton
|
||||||
android:id="@+id/addSensors"
|
android:id="@+id/addSensors"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -44,12 +51,7 @@
|
|||||||
android:layout_margin="@dimen/fab_margin"
|
android:layout_margin="@dimen/fab_margin"
|
||||||
android:src="@drawable/mic"/>
|
android:src="@drawable/mic"/>
|
||||||
|
|
||||||
<android.support.design.widget.FloatingActionButton
|
|
||||||
android:id="@+id/beacon"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="@dimen/fab_margin"
|
|
||||||
android:src="@drawable/beacon"/>
|
|
||||||
|
|
||||||
<android.support.design.widget.FloatingActionButton
|
<android.support.design.widget.FloatingActionButton
|
||||||
android:id="@+id/publish"
|
android:id="@+id/publish"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user