2014-12-31 2 views
-1

을 사용하여 의도가 실행되지 않습니다. http://developer.android.com/training/location/activity-recognition.html의 샘플을 새 GoogleApiClient로 수동으로 이식하려고했습니다.새 GoogleApiClient ActivityRecognition

불행히도 ActivityRecognition의 업데이트가 하나 뿐인 경우가 대부분입니다.

문제를 찾기 위해 가능한 한 코드를 줄였습니다.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Set the main layout 
    setContentView(R.layout.activity_main); 


    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addApi(ActivityRecognition.API) 
      .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
       @Override 
       public void onConnected(Bundle bundle) { 
        Log.d("ActivityRecognition", "Google Play Services connected"); 
        Intent i = new Intent(MainActivity.this, ActivityRecognitionIntentService.class); 
        PendingIntent mActivityRecognitionPendingIntent = PendingIntent.getService(MainActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 
        ActivityRecognition.ActivityRecognitionApi. 
          requestActivityUpdates(mGoogleApiClient, 1000, mActivityRecognitionPendingIntent); 
       } 

       @Override 
       public void onConnectionSuspended(int i) { 

       } 
      }) 
      .build(); 

    mGoogleApiClient.connect(); 

} 

ActivityRecognitionIntentService 샘플에서 모든 코드를 가지고 있지만, '뭔가'를 볼 수있는 희망 onHandleIntent의 시작 로그를 추가 한 일이 구글에 대한 검사 서비스 및 오류 처리를 재생하지 않습니다.

public class ActivityRecognitionIntentService extends IntentService { 

    ... 

    /** 
    * Called when a new activity detection update is available. 
    */ 
    @Override 
    protected void onHandleIntent(Intent intent) { 

     Log.d("ActivityRecognitionIntentService", "onHandleIntent " + ActivityRecognitionResult.hasResult(intent)); 

     ... 

    } 
} 

그리고 마지막으로 매니페스트

:

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="21" /> 
    <uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/> 

    <application android:label="@string/app_name" 
     android:icon="@drawable/ic_launcher" 
     android:theme="@style/Theme.Sample"> 

     <activity android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:uiOptions="splitActionBarWhenNarrow" android:description="@string/app_description"> 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <service android:name=".ActivityRecognitionIntentService"></service> 

    </application> 

</manifest> 

감사합니다 내가 무엇을 잘못하고 있는가에 대한 모든 아이디어를.

PendingIntent.getService(MainActivity.this, (int)Math.random(), i, PendingIntent.FLAG_UPDATE_CURRENT); 

는 의도가 firering을 시작 : 문제가 PendingIntent

PendingIntent.getService(MainActivity.this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 

의 건설에해야 할 일을했을 경우 내가 해당 코드를 변경하는 경우

답변

1

보인다. 두 번째 매개 변수에 대한의 getService()에 대한 문서에서

: 발신자 그래서

에 대한

requestCode가 개인 요청 코드는이 매개 변수에 어떤 영향을 미칠 할 명백한 이유가 없다 처리 여부 또는 의도는 해고되지 않습니다.

관련 문제