最近、ジンバル SDK を使い始めました。私はまだそれをテストしています。しかし、基本的な反応すら得られないようです。コードは非常に単純に見え、ドキュメントもかなりよくできています。ジンバル エリア検出を、開始するエリアに入ったことを知らせるだけのサービスで実行したいと考えています。1 つの薄いジンバルにはサポートまたはフォーラムがなく、回答を見つけるのが困難です。これが私のコードです
Notify クラスは、適切に機能する事前設定されたヘッドアップ通知です。
// MainActivity onCreate にあるメイン コード
Notify = new NotificationHandler(this);
Intent intent = new Intent(getApplicationContext(), Service.class);
startService(intent);
Notify.Notify("Service started",1000);
//これは私のサービスコードです
import android.app.IntentService;
import android.content.Intent;
import android.util.Log;
import java.util.Timer;
import java.util.TimerTask;
public class Service extends IntentService {
Timer PlacesTimer;
TimerTask timerTask;
GimbalHandler Gimbal;
@Override
protected void onHandleIntent(Intent intent)
{
Log.d("XXX", "Intent Service executed");
StartTimer();
}
public Service()
{
super("MyService");
Gimbal = new GimbalHandler(this,this);
}
public void StartTimer()
{
PlacesTimer = new Timer();
initializeServiceTimerTask();
PlacesTimer.schedule(timerTask, 100, 500);
}
private void initializeServiceTimerTask()
{ timerTask = new TimerTask()
{
@Override
public void run()
{
Log.d("XXX","Timed");
}
};
}
}
//これは私の単純なジンバル クラスです
import android.app.Activity;
import android.app.IntentService;
import android.content.Context;
import com.gimbal.android.CommunicationManager;
import com.gimbal.android.Gimbal;
import com.gimbal.android.PlaceEventListener;
import com.gimbal.android.PlaceManager;
import com.gimbal.android.Visit;
public class GimbalHandler
{
private PlaceManager placeManager;
private PlaceEventListener placeEventListener;
Context ParentContext;
Activity Act;
IntentService Service;
NotificationHandler Notify;
public GimbalHandler(Context context,IntentService Service)
{
this.ParentContext = context;
//this.Act = activity;
this.Service = Service;
Notify = new NotificationHandler(ParentContext);
Gimbal.setApiKey(this.Service.getApplication(), "6e1536s92f3e");
placeEventListener = new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
Notify.Notify(visit.getPlace().getName().toString(),5);
}
@Override
public void onVisitEnd(Visit visit) {
Notify.Notify(visit.getPlace().getName().toString(),6);
}
};
placeManager = PlaceManager.getInstance();
placeManager.addListener(placeEventListener);
placeManager.startMonitoring();
CommunicationManager.getInstance().startReceivingCommunications();
}
}