0

私の Android アプリは、現在のアクティビティ (ランニング、ウォーキングなど) を検出する必要があります。

Android Dev Page の指示に従いました: http://developer.android.com/reference/com/google/android/gms/location/ActivityRecognitionClient.html

// Connect to the ActivityRecognitionService
ActivityRecognitionClient mActivityRecognitionClient =
       new ActivityRecognitionClient(this, this, this);
mActivityRecognitionClient.connect();

// Called when a connection to the ActivityRecognitionService has been established.
public void onConnected(Bundle connectionHint) {
   Intent intent = new Intent(this, MyIntentService.class);
   PendingIntent callbackIntent = PendingIntent.getService(this, 0, intent,
           PendingIntent.FLAG_UPDATE_CURRENT);
   mActivityRecognitionClient.requestActivityUpdates(30000, callbackIntent);
}

そして、私のIntent-Serviceでは:

protected void onHandleIntent(Intent intent) {
   if (ActivityRecognitionResult.hasResult(intent)) {
       ActivityRecognitionResult result = ActivityRecognitionResult.extractResult(intent);
       // Put your application specific logic here (i.e. result.getMostProbableActivity())
   }
}

ここに私の問題があります:私は自分で活動認識を開始したいです。Android Dev Page のコードは、それを行うことになっているようです。しかし、サービスを AndroidManifest に追加しないと、何もしません。onConnected() メソッドは呼び出されますが、onHandleIntent() は呼び出されません。

そのため、マニフェストに追加する必要があるかもしれないと考えました。現在はアクティビティを受け取りますが、常に受け取ります。これも私が望むものではありません。私は何を間違っていますか?

前もってありがとう、ステフ

4

1 に答える 1

0

代わりに、「手動で」実行することもできますgoogle-play-servicesここで私の答えを見てください。主なアイデアは、外部アプリケーションの現在の top を検出するActivityことActivityです。Serviceトップ アクティビティを監視するを作成できます。

于 2014-04-17T09:10:31.567 に答える