@Override
 public void onReceive(Context context, Intent intent) {
   // Log.v(TAG, "Receiving: " + intent.getAction());
   if (intent.getAction().equals(OppProbe.getStatusAction(probeName))) {
     OppProbe.Status status = new OppProbe.Status(intent.getExtras());
     if (probeName.equals(status.getName())) {
       Log.i(TAG, "Is a status action for " + probeName);
       long nonce = intent.getLongExtra(OppProbe.ReservedParamaters.NONCE.name, 0L);
       Log.i(TAG, "Nonce is " + nonce + "'");
       if (!sent && nonce != 0L) {
         sent = true;
         expirationTimer.cancel();
         try {
           context.unregisterReceiver(DataResponder.this);
         } catch (IllegalArgumentException e) {
           // already removed;
         }
         final Intent i = new Intent(OppProbe.getGetAction(probeName));
         Log.i(TAG, "Sending intent '" + i.getAction() + "'");
         i.setPackage(context.getPackageName()); // Send only to this app for right now
         i.putExtra(OppProbe.ReservedParamaters.PACKAGE.name, context.getPackageName());
         if (requestId != null && !"".equals(requestId)) {
           i.putExtra(OppProbe.ReservedParamaters.REQUEST_ID.name, requestId);
         }
         i.putExtra(OppProbe.ReservedParamaters.REQUESTS.name, requests);
         i.putExtra(OppProbe.ReservedParamaters.NONCE.name, nonce);
         context.sendBroadcast(i);
       }
     }
   }
 }
 public void requestStatus(boolean includeNonce) {
   final Intent i = new Intent(OppProbe.getPollAction(probeName));
   Log.i(TAG, "Sending intent '" + i.getAction() + "'");
   i.setPackage(context.getPackageName());
   i.putExtra(OppProbe.ReservedParamaters.PACKAGE.name, context.getPackageName());
   i.putExtra(OppProbe.ReservedParamaters.NONCE.name, includeNonce);
   context.sendBroadcast(i);
 }
 @Override
 public void onReceive(Context context, Intent intent) {
   String action = intent.getAction();
   if (OppProbe.isDataAction(action)) {
     String dataJson = bundleSerializer.serialize(intent.getExtras());
     String probeName = OppProbe.getProbeName(action);
     long timestamp = intent.getLongExtra("TIMESTAMP", 0L);
     Bundle b = new Bundle();
     b.putString(NameValueDatabaseService.DATABASE_NAME_KEY, databaseName);
     b.putLong(NameValueDatabaseService.TIMESTAMP_KEY, timestamp);
     b.putString(NameValueDatabaseService.NAME_KEY, probeName);
     b.putString(NameValueDatabaseService.VALUE_KEY, dataJson);
     Intent i = new Intent(context, databaseServiceClass);
     i.setAction(DatabaseService.ACTION_RECORD);
     i.putExtras(b);
     context.startService(i);
   }
 }
 public void registerDataRequest(final String requestId, final Bundle... requests) {
   DataResponder statusReceiver = new DataResponder(requestId, requests);
   context.registerReceiver(statusReceiver, new IntentFilter(OppProbe.getStatusAction(probeName)));
   requestStatus(true);
 }
 public static void requestStatusFromAll(Context context) {
   Intent i = new Intent(OppProbe.getGlobalPollAction());
   i.putExtra(OppProbe.ReservedParamaters.PACKAGE.name, context.getPackageName());
   context.sendBroadcast(i);
 }