Added broadcastreceiver to receive data from external data sources

This commit is contained in:
Graham Jones
2017-12-23 20:55:41 +00:00
parent 3bc65b42ce
commit 34bf2a724b
2 changed files with 28 additions and 3 deletions

View File

@@ -23,10 +23,12 @@
*/
package uk.org.openseizuredetector;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.os.BatteryManager;
import android.os.Handler;
import android.preference.PreferenceManager;
@@ -66,6 +68,7 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
// data after mDataUpdatePeriod
private int mFaultTimerPeriod = 30; // Fault Timer Period in sec
private int mSettingsPeriod = 60; // period between requesting settings in seconds.
private SdDataBroadcastReceiver mSdDataBroadcastReceiver;
private String TAG = "SdDataSourceNetPassive";
@@ -170,6 +173,11 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
mUtil.writeToSysLogFile("SdDataSourceNetworkPassive.start() - settings timer already running??");
}
mSdDataBroadcastReceiver = new SdDataBroadcastReceiver();
//uk.org.openseizuredetector.SdDataReceived
IntentFilter filter = new IntentFilter("uk.org.openseizuredetector.SdDataReceived");
mContext.registerReceiver(mSdDataBroadcastReceiver, filter);
}
/**
@@ -191,6 +199,7 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
Log.v(TAG, "Error in stop() - " + e.toString());
mUtil.writeToSysLogFile("SdDataSourceNetworkPassive.stop() - error - "+e.toString());
}
mContext.unregisterReceiver(mSdDataBroadcastReceiver);
}
/**
@@ -316,7 +325,8 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
try {
JSONObject mainObject = new JSONObject(jsonStr);
JSONObject dataObject = mainObject.getJSONObject("dataObj");
//JSONObject dataObject = mainObject.getJSONObject("dataObj");
JSONObject dataObject = mainObject;
String dataTypeStr = dataObject.getString("dataType");
Log.v(TAG,"updateFromJSON - dataType="+dataTypeStr);
if (dataTypeStr.equals("raw")) {
@@ -339,9 +349,12 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
mSdData.haveSettings = true;
mSdData.mSampleFreq = mSampleFreq;
mWatchAppRunningCheck = true;
} else {
Log.v(TAG,"updateFromJSON - unrecognised dataType "+dataTypeStr);
}
} catch (Exception e) {
Log.v(TAG,"Error Parsing JSON String - "+e.toString());
Log.v(TAG,"updateFromJSON - Error Parsing JSON String - "+e.toString());
e.printStackTrace();
}
}
@@ -551,6 +564,18 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
}
}
public class SdDataBroadcastReceiver extends BroadcastReceiver {
//private String TAG = "SdDataBroadcastReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.v(TAG,"SdDataBroadcastReceiver.onReceive()");
String jsonStr = intent.getStringExtra("data");
Log.v(TAG,"SdDataBroadcastReceiver.onReceive() - data="+jsonStr);
updateFromJSON(jsonStr);
}
}
}

View File

@@ -37,6 +37,7 @@ import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -1073,5 +1074,4 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
}
}