2016-03-27 13 views
1

Google Fitセッションが電話で開始または終了するときにBroadcastReceiverを開始できるようにします。Android:Google Fit:セッションの開始/終了BroadcastReceiversがトリガーしない

<receiver android:name=".YogaSessionStartedBroadcastReceiver" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.google.android.gms.fitness.session_start" /> 
      <data android:mimeType="vnd.google.fitness.activity_type/yoga" /> 
     </intent-filter> 
    </receiver> 

    <receiver android:name=".YogaSessionEndedBroadcastReceiver" 
     android:exported="true"> 
     <intent-filter> 
      <action android:name="com.google.android.gms.fitness.session_end" /> 
      <data android:mimeType="vnd.google.fitness.activity_type/yoga" /> 
     </intent-filter> 
    </receiver> 

そして、私は私のアプリで活動タイプYOGAとのセッションを開始しています:

mSession = new Session.Builder() 
      .setName(SESSION_NAME) 
      .setIdentifier(getString(R.string.app_name) + " " + System.currentTimeMillis()) 
      .setDescription("Yoga Session Description") 
      .setStartTime(Calendar.getInstance().getTimeInMillis(), TimeUnit.MILLISECONDS) 
      .setActivity(FitnessActivities.YOGA) 
      .build(); 

    PendingResult<Status> pendingResult = 
      Fitness.SessionsApi.startSession(mGoogleApiClient, mSession); 

しかしonReceiveが私のBroadcastReceiversに呼び出されることはありません私は、受信機のためのマニフェストセットアップを持っています。助言がありますか?

+0

これがなぜ投票されなかったのか分かりません。これは正当な質問です。私は、Google Fitがブロードキャストレシーバを小さなスニペットのドキュメントの外で使用する方法については、どこでも答えを見つけることができません:https://developers.google.com/fit/android/using-sessions#session_start_intents –

答えて

1

セッションに登録しましたか?

registerForSessions (GoogleApiClient client, PendingIntent intent) 

このような何か:

Intent intent = new Intent(mContext,YogaSessionEndedBroadcastReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, alarmIntent, 0); 
Fitness.SessionsApi.registerForSessions(mClient,pendingIntent); 

mClientがあなたのGoogleApiClientで、mContextがあなたのアクティビティーコンテキストです。