2016-03-27 27 views
1

Bir Google Fit oturumu bir telefonda başladığında veya bittiğinde BroadcastReceiver'ı başlatmak istiyorum.Android: Google Fit: Oturum Başlatma/Bitiş Yayını Alıcıları Tetiklemiyor

<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> 

Ve ben uygulamasındaki etkinlik türü YOGANIN ile bir oturum başlıyorum: Ancak OnReceive benim Yayın Alıcılarının içinde

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); 

asla denir ben alıcıları için ayarlanmış bildirim var. Baska öneri?

+0

Bunun neden reddedildiğinden emin değil. Bu yasal bir sorudur ve Google Fit'in küçük bir kod snippet'i dışında yayın alıcılarını nasıl kullandığı hakkında herhangi bir cevap bulamıyorum: https://developers.google.com/fit/android/using-sessions#session_start_intents –

cevap

1

Oturum için kayıt oldunuz mu? Böyle

registerForSessions (GoogleApiClient client, PendingIntent intent) 

şey: Mclient sizin GoogleApiClient, Ve mContext Etkinlik Bağlam ise

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

.

İlgili konular