This repository has been archived on 2020-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
Files
YASMIN/_android/src/StepLoggerClient.java
2016-09-28 12:16:45 +02:00

80 lines
2.0 KiB
Java

package indoor.java;
import android.app.IntentService;
import android.content.ComponentName;
import android.content.Intent;
import android.content.Context;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.util.Log;
import java.util.Timer;
import java.util.TimerTask;
import it.cnr.isti.steplogger.IStepLoggerService;
/**
* An {@link IntentService} subclass for handling asynchronous task requests in
* a service on a separate handler thread.
*/
public class StepLoggerClient {
private static StepLoggerClient instance;
// Intent Service fields
private static String LOG_TAG = "StepLoggerClient";
private boolean mustRun = true;
// Bound Service fields
final String BOUNDSERVICE_PACKAGE = "it.cnr.isti.steplogger";
final String BOUNDSERVICE_CLASS = ".StepLoggerService";
IStepLoggerService mService;
Boolean isBound = false;
Intent intentService = new Intent();
//Bound Service Connection
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName name, IBinder boundService) {
mService = IStepLoggerService.Stub.asInterface((IBinder) boundService);
Log.d(LOG_TAG, "onServiceConnected() : OK ");
isBound = true;
}
public void onServiceDisconnected(ComponentName name) {
mService = null;
Log.d(LOG_TAG, "onServiceDisconnected() : OK ");
isBound = false;
}
};
/** ctor */
public StepLoggerClient(MyActivity act) {
instance = this;
intentService.setClassName(BOUNDSERVICE_PACKAGE, BOUNDSERVICE_PACKAGE + BOUNDSERVICE_CLASS);
act.bindService(intentService, mConnection , Context.BIND_AUTO_CREATE );
}
/** static access from C++ */
public static int log(double x, double y, double z) {
Log.d("me", "got values");
instance._log(x,y,z);
return 1337; // return a magic-code that is checked within c++
}
private void _log(double x, double y, double z) {
Log.d("me", mService + "");
if (mService == null) {return;}
try {
mService.logPosition(System.currentTimeMillis(), x, y, z);
} catch (final Exception e) {;}
}
}